如何在Node.js的while循环中处理异步操作?

地亚哥

对于Node API,我必须生成一个随机的字母数字键,该键应该是唯一且简短的(我不能同时使用uuid或Mongo ObjectID)。

我认为这种逻辑:

  1. 生成密钥,
  2. 查询MongoDB以获取键的存在
  3. 如果密钥存在,请重复该过程,
  4. 如果密钥不存在,请分配它并响应客户端。

然后,我尝试了:

do {
  key = randomKey(8);
  newGroup.key = key;
  Group.findOne({numberId: key}).then(function (foundGroup) {
    console.log("cb");

    if (! foundGroup) {
      console.log("not found")
      notUnique = false;
    }

  }).catch(function (err) {
    return response.send(500);
  });

} while (notUnique);

但是,只有我是一个无限循环,notUnique永远不会切换到true以防万一,这是针对一个Empy数据库进行测试的。

我怎么能做到呢?

哈桑新

您可以使用异步模块轻松完成此操作:

var async = require('async')

async.forever(
    function(next) {
        key = randomKey(8);

        Group.findOne({numberId: key}).then(function (foundGroup) {
          console.log("cb");

          if (! foundGroup) {
            console.log("not found")
            notUnique = false;
            next(new Error(), key) // break forever loop with empty error message and the key
          }
          else 
            return next() //continue loop

        }).catch(function (err) {
          next(err); //break loop
          return response.send(500);
        });
    },
    function(err, key) {
        if(key){
           newGroup.key = key;
        }

    }
);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在循环中执行异步操作

来自分类Dev

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

来自分类Dev

如何在 node.js 中的异步和条件循环中执行嵌套查询

来自分类Dev

C-如何在while循环中处理用户输入

来自分类Dev

如何在 while 循环中处理整数输入

来自分类Dev

如何处理while循环中的删除

来自分类Dev

如何在Node.js中处理异步函数

来自分类Dev

如何在Node.js中处理异步函数

来自分类Dev

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

来自分类Dev

如何打破循环中的一系列异步操作?

来自分类Dev

如何处理循环中调用的异步函数?

来自分类Dev

如何在循环中执行异步代码?

来自分类Dev

如何在循环中异步运行任务?

来自分类Dev

如何在for循环中实现异步?

来自分类Dev

异步Node.js循环中的变量作用域

来自分类Dev

函数while循环中的返回如何处理?

来自分类Dev

如何在循环中处理 R 警告?

来自分类Dev

循环之间并行,循环中有多个异步操作,如何实现?

来自分类Dev

如何在具有sails.js异步结构的循环中使用查询?

来自分类Dev

如何在 while 循环中创建 if 语句以仅在某些行上执行某些操作?

来自分类Dev

如何在while循环中输入if语句?

来自分类Dev

在 Node.js 中的 while 循环中使用 setTimeout

来自分类Dev

如何在共享资源作为参数的for循环中使用std future和async与线程异步处理?

来自分类Dev

如何在while循环中重置while循环?

来自分类常见问题

如何在每个循环中“继续”:下划线,node.js

来自分类Dev

如何在Node.js循环中将值收集到数组?

来自分类Dev

如何在Node.js中添加promise.all在循环中顺序化findOrCreate?

来自分类Dev

Node.js和Express:如何在异步操作后返回响应

来自分类Dev

node.js 如何在异步操作之外保存变量以访问它的回调?

Related 相关文章

  1. 1

    如何在循环中执行异步操作

  2. 2

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

  3. 3

    如何在 node.js 中的异步和条件循环中执行嵌套查询

  4. 4

    C-如何在while循环中处理用户输入

  5. 5

    如何在 while 循环中处理整数输入

  6. 6

    如何处理while循环中的删除

  7. 7

    如何在Node.js中处理异步函数

  8. 8

    如何在Node.js中处理异步函数

  9. 9

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

  10. 10

    如何打破循环中的一系列异步操作?

  11. 11

    如何处理循环中调用的异步函数?

  12. 12

    如何在循环中执行异步代码?

  13. 13

    如何在循环中异步运行任务?

  14. 14

    如何在for循环中实现异步?

  15. 15

    异步Node.js循环中的变量作用域

  16. 16

    函数while循环中的返回如何处理?

  17. 17

    如何在循环中处理 R 警告?

  18. 18

    循环之间并行,循环中有多个异步操作,如何实现?

  19. 19

    如何在具有sails.js异步结构的循环中使用查询?

  20. 20

    如何在 while 循环中创建 if 语句以仅在某些行上执行某些操作?

  21. 21

    如何在while循环中输入if语句?

  22. 22

    在 Node.js 中的 while 循环中使用 setTimeout

  23. 23

    如何在共享资源作为参数的for循环中使用std future和async与线程异步处理?

  24. 24

    如何在while循环中重置while循环?

  25. 25

    如何在每个循环中“继续”:下划线,node.js

  26. 26

    如何在Node.js循环中将值收集到数组?

  27. 27

    如何在Node.js中添加promise.all在循环中顺序化findOrCreate?

  28. 28

    Node.js和Express:如何在异步操作后返回响应

  29. 29

    node.js 如何在异步操作之外保存变量以访问它的回调?

热门标签

归档