Node JS、NeDB - 如何同步 return 到父模块

Node JS, NeDB - How make sync return to parent module

我有功能:

let isExistByEmail = (email) => {
    return new Promise(function (resolve) {
        db.count({email: email}, (err, n) => {
            resolve(n > 0);
        });
    }).then(result => {
        return result;
    });
};

如果我在其中制作 console.log -> 将是结果。 但是,因为它的操作异步结果不会 return 到父模块。 我需要验证,如果电子邮件存在 return 错误,但我不能。 我尝试 make setTimeout 并尝试使用 async await,但没有结果。

我不确定你想暗示什么。但据我了解,你不会得到结果。 isExistByEmail('email@email.com') 将 return 一个 Promise 而不是您期望的布尔值。 then return 是承诺而不是 obj/variable

我找到了下一个答案:使用 async-await。

async function isEmailExist(email) {
    let count = await new Promise((resolve, reject) => {
        db.count({email: email}, (err, count) => {
            if (err) reject(err);
            resolve(count);
        });
    });
    return count > 0;
}

并在通话中再次使用等待:

async function isAccessData(req) {
    let errors = [];

    if (await users.isEmailExist(req.body.email) === true) {
    // doing
    }
 }