shortcake
Version:
Asynchronous invoke and other goodies for cake.
25 lines (19 loc) • 547 B
text/coffeescript
import invoke from './invoke'
import log from '../log'
import {isFunction} from '../utils'
invokeParallel = (tasks, opts, cb) ->
log.debug 'invokeParallel', tasks, opts
parallel = (cb) ->
done = 0
for task in tasks
invoke task, opts, ->
if ++done == tasks.length
cb()
return (parallel cb) if isFunction cb
new Promise (resolve, reject) ->
parallel (err) ->
reject err if err?
resolve()
cb err if isFunction cb
export default invokeParallel