【发布时间】:2019-09-12 04:39:15
【问题描述】:
我正在尝试等待 (Promise.all) 使用 Sequelize.js 运行数据库查询的 Promises 数组,这解决了 > 来自then。
我兑现我的承诺如下:
for (furnix in shorthandFurni) {
furniData = shorthandFurni[furnix]
furniSplit = furniData.split(":")
CompletedPromises.push(new Promise(resolve, reject) => {
db.query("...").then(result => {
. . .
// depending on the for-loop
resolve({
otherdbdata: . . .,
furniData: furniData,
furniSplit: furniSplit
})
})
})
}
然后返回(在 for 循环之后)。
return Promise.all(CompletionPromises)
这一切都很好,但问题源于变量 furniData 和 furniSplit 是我承诺的解决方案的一部分......现在,当这段代码在我的服务器上执行时,它返回变量 @ 987654327@ 对于所有的承诺解决方案都相同。
基本上,我想知道如何将 furniSplit 作为变量带入 resolve 函数的范围,以便在 for 循环的每次迭代中提供唯一数据,而不是最后一个。
感谢您的帮助。
【问题讨论】:
-
不要使用全局变量...使用
let furniData =和let furniSplit =,一切都会好起来的
标签: javascript node.js asynchronous promise sequelize.js