使用 mongoDB 调用/node.js 的 Foreach 循环

cs家伙
  result.forEach(element => {
    //Get each element
    console.log("LOOP");
    dbo.collection("users").findOne({email: emailGiven, "friends.email": element.email},function(errT, resultT) {
      if (errT){
        console.log("Query Error Inside!");
        res.status(errT.status); // or use err.statusCode instead 
        console.log(errT);
        //db.close();
        //return res.send(errT.message);
      }
      else {
        if (resultT) {
          var oneUser = {
            email: element.email,
            username: element.username,
            fullName: element.fullName,
            status: resultT
          };
          //console.log(resultT);
          foundUsers.push(oneUser);
        } else {
          //Not found means not added or pending
          var oneUser = {
            email: element.email,
            username: element.username,
            fullName: element.fullName,
            status: 0
          };
          foundUsers.push(oneUser);
          //console.log(emailGiven +  " " + element.email)
          console.log(oneUser);                  
        }
      }
    });
  });

我为每个元素都有一个对象数组我想为每个元素调用 mongoDB 并根据结果我想像我一样将结果推送到数组中,问题是 mongoDb 是异步的,所以我的主线程在我可以之前完成将结果推送到数组 foundUsers,我该如何解决这个问题?

佩兹曼·帕萨伊

正如你所说,需要将异步操作处理成同步循环。为此,您可以使用异步库。它在这样的操作中非常有用。

只需先在您的项目中安装 async 模块 npm install --save async

之后,你可以这样做:

// for use with Node-style callbacks...
var async = require("async");

var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"};
var configs = {};

async.forEachOf(obj, (value, key, callback) => {
    fs.readFile(__dirname + value, "utf8", (err, data) => {
        if (err) return callback(err);
        try {
            configs[key] = JSON.parse(data);
        } catch (e) {
            return callback(e);
        }
        callback();
    });
}, err => {
    if (err) console.error(err.message);
    // configs is now a map of JSON data
    doSomethingWith(configs);
});

为了使用这个库,它使用async.forEachOf函数而不是简单的 forEach 循环。三个参数被发送到这个函数。

  1. 传递给 async.forEachOf 的第一个参数是一个用于迭代它的数组 (obj)。
  2. 第二个参数是一个回调函数,适用于 obj 中的每个项目。
  3. 传递给 async.forEachOf 函数的第三个或最后一个参数也是另一个回调函数。当 obj 中每个项目的迭代过程完成时调用它。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用monk / node.js调用mongodb函数?

来自分类Dev

如何使用Node.js在MongoDB中使用cursor.forEach()?

来自分类Dev

在node.js中管理嵌套的异步foreach循环

来自分类Dev

Node.js Sequalize 在 forEach 循环中创建新行

来自分类Dev

正确使用foreach循环中的foreach循环

来自分类Dev

正确使用foreach循环中的foreach循环

来自分类Dev

使用 angularjs forEach 循环

来自分类Dev

API调用上的Node.js循环

来自分类Dev

使用 java 8 foreach 循环调用方法和处理异常

来自分类Dev

连接到 MongoDB Atlas 时,如何获取从 Node.js 中的 foreach 循环返回的字符串的子字符串

来自分类Dev

如何使用Node JS中的嵌套/相关API调用从FOR循环结束时捕获结果

来自分类Dev

在函数调用返回之前,使用node.js进行循环迭代,从而造成对象问题

来自分类Dev

node.js非阻塞mongodb调用

来自分类Dev

我是否需要使用来自node.js的mongodb的同步调用/事务?

来自分类Dev

Mongo 在使用 node.js MongoDB Driverr 调用 Collection.drop 后抛出“拓扑被破坏”错误

来自分类Dev

ForEach循环中的调用函数

来自分类Dev

使用MongoDB游标对象时,在EJS中正确生成带有forEach循环的HTML表?

来自分类Dev

在foreach循环中使用for循环值

来自分类Dev

如何使用foreach循环来循环图像

来自分类Dev

使用R foreach的高音循环

来自分类Dev

在JSF中使用foreach循环

来自分类Dev

在forEach数组中使用for循环

来自分类Dev

使用$ _POST和foreach循环

来自分类Dev

使用setInterval的NodeJS foreach循环

来自分类Dev

使用R foreach的高音for循环

来自分类Dev

在foreach循环外使用变量

来自分类Dev

使用 Linq 的 foreach 循环条件

来自分类Dev

使用Node.js导入/导出MongoDB

来自分类Dev

使用Node JS在MongoDb中聚合查询

Related 相关文章

  1. 1

    如何使用monk / node.js调用mongodb函数?

  2. 2

    如何使用Node.js在MongoDB中使用cursor.forEach()?

  3. 3

    在node.js中管理嵌套的异步foreach循环

  4. 4

    Node.js Sequalize 在 forEach 循环中创建新行

  5. 5

    正确使用foreach循环中的foreach循环

  6. 6

    正确使用foreach循环中的foreach循环

  7. 7

    使用 angularjs forEach 循环

  8. 8

    API调用上的Node.js循环

  9. 9

    使用 java 8 foreach 循环调用方法和处理异常

  10. 10

    连接到 MongoDB Atlas 时,如何获取从 Node.js 中的 foreach 循环返回的字符串的子字符串

  11. 11

    如何使用Node JS中的嵌套/相关API调用从FOR循环结束时捕获结果

  12. 12

    在函数调用返回之前,使用node.js进行循环迭代,从而造成对象问题

  13. 13

    node.js非阻塞mongodb调用

  14. 14

    我是否需要使用来自node.js的mongodb的同步调用/事务?

  15. 15

    Mongo 在使用 node.js MongoDB Driverr 调用 Collection.drop 后抛出“拓扑被破坏”错误

  16. 16

    ForEach循环中的调用函数

  17. 17

    使用MongoDB游标对象时,在EJS中正确生成带有forEach循环的HTML表?

  18. 18

    在foreach循环中使用for循环值

  19. 19

    如何使用foreach循环来循环图像

  20. 20

    使用R foreach的高音循环

  21. 21

    在JSF中使用foreach循环

  22. 22

    在forEach数组中使用for循环

  23. 23

    使用$ _POST和foreach循环

  24. 24

    使用setInterval的NodeJS foreach循环

  25. 25

    使用R foreach的高音for循环

  26. 26

    在foreach循环外使用变量

  27. 27

    使用 Linq 的 foreach 循环条件

  28. 28

    使用Node.js导入/导出MongoDB

  29. 29

    使用Node JS在MongoDb中聚合查询

热门标签

归档