什么'这是从第三个函数上的async 1st函数获得结果的更好方法
What's a better way to get the result from async 1st function on the 3rd function?
虽然我现在可以将函数外的变量设置为microsite,或者将第二个函数的回调更改为function(err, result) { cb(cb, result, microsite)}
,但我想知道一个比上面建议的更好的选项。这是我的代码:
var funcs = [
function(cb){
Microsite.findOne({_id: id1}, cb);
},
function(microsite, cb){
VideoAccount.findOne({_id: id2}, cb);
},
function(videoAccount, cb) {
execute(microsite, videoAccount, cb);
});
async.waterfall(funcs, function(err, result){...});
您可以使用自动功能:
async.auto({
microSite: function(cb) {
Microsite.findOne({_id: id1}, cb);
},
videoAccount: function(cb) {
VideoAccount.findOne({_id: id2}, cb);
},
thirdFunction: ["microSite", "videoAccount", function(results, cb) {
execute(results.microSite, results.videoAccount, cb);
}]
}, function(error, result) {...});
其中最终的CCD_ 2是以下形式的对象:
result = {
microSite,
videoAccount,
thirdFunction
}
注意:第三个函数中的参数取决于您的版本:
1.x是function(cb, results)
2.x是function(results, cb)
就我个人而言,我在任何地方都使用auto来代替并联、瀑布和串联。如果您的代码根据您当前的需求发生变化,那么在将来进行重构会更容易。
相关文章:
- jQuery加载的async和ready函数不工作
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 使用节点确定成功/失败.js函数 async.retry
- Async.waterfall 函数在保存解析对象后退出
- Node.js使用async函数返回的对象
- 使用预定义函数的NodeJS async.series
- 对async函数进行同步调用
- 等待函数结束(在 async.series 中)无法按预期工作
- Async.waterfall 的本机回调函数
- 为什么 JavaScript 函数需要有关键字“async”?“等待”关键字还不够吗?
- 使用从 async.series 调用的原型函数中的“this”
- node.js async.maplimit() 将额外的参数传递给处理函数
- 一个带有 async:true 的 ajax 函数
- 在 async.each 的帮助下调用 foreach 中的同步函数(带回调)
- 异步函数在 Async.map 中的恢复结果
- JavaScript插入带有async的脚本并使用其中的函数
- 混合了sync和async javascript/jquery,并在最后获得了一个成功函数
- javascript删除async.parallel中的函数
- 停止间隔函数async
- 来自You Don't Know JS的Kyle Simpson asyncify函数:Async &表演