Node js,如何在循环后运行代码同步

侯赛因·纳马齐安

这是我的代码,其中我尝试使用 for 循环更新我的数据库 (MongoDB) 的一些文档。但是我想在循环完成后运行下一个代码,例如,我想在循环完成后使用一些在循环内计算的变量。我如何使用回调、承诺等来做到这一点?

numPktUpdated = 0;
for (key in InvoicesPUT) { 
      Invoice.findOneAndUpdate({ InvoiceNumber: InvoicesPUT[key].InvoiceNumber }, InvoicesPUT[key]).exec()
      .then((doc) => {
           console.log("Update Succeeded")
           numPktUpdated = numPktUpdated + 1;
      })
      .catch((err) => {
            return resp.send(JSON.stringify({
            "status": "error",
            "message": "DB Error while Updating: Wrong Packet"
            }));
            console.log(err);
     })
}
resp.send(numPktUpdated);

这里 numPktUpdated = 0 被发送到客户端,尽管它在循环后的实际值是别的东西。

谢谢。

尼克拉斯·希吉

你应该能够做到这一点Promise.all()

Promise.all(InvoicesPUT.map(InvoicePUT => {
    return Invoice.findOneAndUpdate({
        InvoiceNumber: InvoicePUT.InvoiceNumber
    }, InvoicePUT).exec()
    .then(doc => {
        console.log("Update Succeeded");
        numPktUpdated += 1;
    })
}))
.catch(err => {
    return resp.send(JSON.stringify({
        "status": "error",
        "message": "DB Error while Updating: Wrong Packet"
    }));
    console.log(err);
})
.then(() => {
    // What you want to do after the loop ...
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使此代码在Node.Js中同步运行?

来自分类Dev

在Node.js中完成for循环后如何运行函数?

来自分类Dev

如何在 node.js 中逐行运行代码

来自分类Dev

如何使Node js同步?

来自分类Dev

Node.js同步循环

来自分类Dev

如何在同步循环内的Node.JS中使用setTimeout?

来自分类Dev

如何在Node.js和MongoDb中的javascript中混合同步和异步代码

来自分类Dev

从源代码安装后无法运行Node.js

来自分类Dev

如何在Node.js中同步读取文件内容?

来自分类Dev

如何在Node.js中同步连接到MongoDB

来自分类Dev

如何在node.js的同步函数中捕获错误?

来自分类Dev

如何在Node JS中将异步转换为同步

来自分类Dev

Node js - 通过循环同步执行函数

来自分类Dev

如何在浏览器而不是命令行中运行Node.js代码

来自分类Dev

如何在Node.js Web应用程序中运行用户代码?

来自分类Dev

Node.js如何在运行时如此快速地执行同步“ require()”调用?

来自分类Dev

在给定的时间后,如何在node.JS中运行函数?

来自分类Dev

使用gem成功安装后如何在Mac上运行Node.js?

来自分类Dev

如何从Node.js代码访问事件循环?

来自分类Dev

node.js事件循环如何记住长时间运行的操作完成后需要回调?

来自分类Dev

Node.js:如何顺序运行异步代码

来自分类Dev

Node JS 同步事件

来自分类Dev

Node JS:如何承诺 For 循环

来自分类Dev

mysql / node.js如何使/伪同步?

来自分类Dev

如何在回调函数Node JS中打破for循环

来自分类Dev

如何在Node.JS中编写异步While循环

来自分类Dev

如何在for循环内编写node.js异步?

来自分类Dev

如何在Node.js / Javascript中停止无限循环

来自分类Dev

如何在Node.js中使用If语句和for循环?

Related 相关文章

热门标签

归档