我正在尝试等待 (Promise.all
) 一组使用 Sequelize.js 运行数据库查询的 Promises,这从then
解析。
我兑现我的 promise 如下:
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
是我 promise 的解决方案的一部分......现在,当这段代码在我的服务器上执行,它返回变量 furniSplit
对于所有的 promise 决议都是相同的。
基本上,我想知道如何将 furniSplit
作为变量带入解析函数的范围,以便在 for 循环的每次迭代中给出唯一的数据,而不是最后一个。
感谢您的帮助。
最佳答案
乍一看,这似乎是一个范围问题。 尝试一下
const furniSplit = furniData.split(":");
关于javascript - Promise 范围在执行时不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55803676/