module Concurrent::Promises::FactoryMethods
Public Instance Methods
zip_futures_over(enumerable, &future_factory)
click to toggle source
@!macro promises.shortcut.on @return [Future] @!macro warn.edge
# File lib-edge/concurrent/edge/promises.rb, line 179 def zip_futures_over(enumerable, &future_factory) zip_futures_over_on default_executor, enumerable, &future_factory end
zip_futures_over_on(default_executor, enumerable, &future_factory)
click to toggle source
Creates new future which is resolved after all the futures created by future_factory from enumerable elements are resolved. Simplified it does: `zip(*enumerable.map { |e| future e, &future_factory })` @example
# `#succ` calls are executed in parallel zip_futures_over_on(:io, [1, 2], &:succ).value! # => [2, 3]
@!macro promises.param.default_executor @param [Enumerable] enumerable @yield a task to be executed in future @yieldparam [Object] element from enumerable @yieldreturn [Object] a value of the future @return [Future] @!macro warn.edge
# File lib-edge/concurrent/edge/promises.rb, line 197 def zip_futures_over_on(default_executor, enumerable, &future_factory) # ZipFuturesPromise.new_blocked_by(futures_and_or_events, default_executor).future zip_futures_on(default_executor, *enumerable.map { |e| future e, &future_factory }) end