gpt4 book ai didi

javascript - Promise.map 中的异步方法

转载 作者:行者123 更新时间:2023-12-03 03:16:25 25 4
gpt4 key购买 nike

我需要帮助来理解如何在 .map 方法中调用异步方法。我需要等到所有异步方法完成,然后使用异步方法修改的值。

我的代码如下

//declared during init
var Promise = require("bluebird");

Promise.map(objectArray, function (item) {

mongoDB.findOne({
itemId=item.id
})
.then(function (result) {
item.set({newValue:result.foo});
return item.toObject();
})
.catch(function (err) {

});
}).then(function (modifiedObjectArray) {
return res.status(200).send(modifiedObjectArray);
});

在上面的情况下,迭代器完成其任务后就会调用映射的 then 函数。如何等待所有数据库任务完成。

最佳答案

您应该从回调中返回 promise :

Promise.map(objectArray, function (item) {
return mongoDB
.findOne({itemId: item.id})
.then(function (result) {
item.set({newValue: result.foo});
return item.toObject();
})
.catch(function (err) {

});
}).then(function (modifiedObjectArray) {
return res.status(200).send(modifiedObjectArray);
});

关于javascript - Promise.map 中的异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46754509/

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