javascript - Promise 范围在执行时不同

标签 javascript node.js asynchronous promise sequelize.js

我正在尝试等待 (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)

这一切都很好,但问题源于变量 furniDatafurniSplit 是我 promise 的解决方案的一部分......现在,当这段代码在我的服务器上执行,它返回变量 furniSplit 对于所有的 promise 决议都是相同的。

基本上,我想知道如何将 furniSplit 作为变量带入解析函数的范围,以便在 for 循环的每次迭代中给出唯一的数据,而不是最后一个。

感谢您的帮助。

最佳答案

乍一看,这似乎是一个范围问题。 尝试一下

const furniSplit = furniData.split(":");

关于javascript - Promise 范围在执行时不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55803676/

相关文章:

javascript - Angular 最佳实践。 Controller Action 触发动画

javascript - 为什么我的 React 组件没有渲染?

javascript - 解码 websocket 中的延续帧

javascript - 在 db 中插入对象数组,仅获取控制台中的最后一个对象数据

c# - 等到单元测试中的所有任务完成

javascript - React.JS 组件的 onClick 函数,如何使其结果更具体

javascript - 关闭特定的 XMLHttpRequest

angularjs - 为什么我不能从名为 'users' 的文件夹加载文件?

ios - 如何在异步获取 JSON 数据以填充到 UITableView 时显示 UIActivityIndi​​catorView?

javascript - 如何使用一系列异步请求的结果填充数组