Async .auto () pode evitar que você grave uma floresta de .series()
e .parallel()
. Se você quiser reutilizar callbacks existentes de séries / paralelos, ou apenas parecer bobo, você pode tentar o seguinte hack:
function aapply(deps, fn) {
deps = [].concat(deps);
return deps.concat(function (next, hash) {
var args = deps.map(function (i) { return hash[i]; });
fn.apply(null, args.concat(next));
});
}
Um exemplo deve ser suficiente 🙂
async.auto({
foo: function (next) { next(null, 'foo'); },
bar: function (next) { next(null, 'man'); },
wat: aapply(['foo', 'bar'], function (a, b, next) {
next(null, a + b + 'xu');
})
}, console.log);
editado para reduzir a legibilidade geral e certificar- deps
se de que é um array.