gpt4 book ai didi

node.js - NodeJS 回调序列

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:18 25 4
gpt4 key购买 nike

各位, 我有以下函数,并且想知道仅当数据库操作完成所有项目时调用回调()的正确方法是什么:

function mapSomething (callback) {
_.each(someArray, function (item) {
dao.dosomething(item.foo, function (err, account) {
item.email = account.email;
});
});
callback();
},

我需要的是迭代 someArray 并为每个元素进行数据库调用。替换数组中的所有项目后,我只需要调用回调。当然,回调现在位于错误的位置

谢谢!

最佳答案

按照您当前的方式,回调会在任何(异步)任务完成之前执行。

async模块有一个 each() 允许最终回调:

var async = require('async');

// ...

function mapSomething (callback) {
async.each(someArray, function(item, cb) {
dao.dosomething(item.foo, function(err, account) {
if (err)
return cb(err);
item.email = account.email;
cb();
});
}, callback);
}

关于node.js - NodeJS 回调序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25755072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com