0

我在nodejs中有一个函数,它的指令必须按顺序执行。我已经尝试了节点 8 和承诺的本机选项(异步和等待)。我不能让他在返回之前等待 FindOne 结果。

module.existe = function(usr, pass) {

  (async() => {

    await coleccion.findOne(
      { usr: usr, pass: pass },
      (err, result) => {
        return (result == null)? false : true;
      }
    );

  })();
}

对 mongo 的查询很好,我可以恢复文档,但总是在返回后,所以验证不起作用。这个函数应该做的是检查一个集合 {usr, key} 是否已经存在于数据库中

可以是什么?

4

1 回答 1

1

亨利将军已经在评论中回答了

完全制作它们:

const { promisify } = require('util');

module.existe = function (usr, pass) {
    const findOnePromise = promisify(coleccion.findOne);

    (async () => {
        const result = await findOnePromise({ usr: usr, pass: pass });
        return (result === null) ? false : true;
    })();
}

文档:等待- util.promisify

于 2018-04-28T21:18:34.260 回答