我在nodejs中有一个函数,其指令必须按顺序执行。我已经尝试了节点8和promises的本机选项(async和await)。我不能让他在返回之前等待FindOne的结果。
module.existe = function(usr, pass) {
(async() => {
await coleccion.findOne(
{ usr: usr, pass: pass },
(err, result) => {
return (result == null)? false : true;
}
);
})();
}
对mongo的查询很好,我可以恢复文件,但总是在返回后,所以验证不起作用。该函数应该做的是检查数据库中是否已存在集合{usr,key}
可能是什么?
答案 0 :(得分:1)
generalhenry已经在评论中回答了
完全放弃它们:
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;
})();
}
文档:await - util.promisify