繁体   English   中英

NodeJS 返回 boolean 值而不是 promise 挂起

[英]NodeJS return the boolean value instead of promise pending

我需要从下面我的代码的第二个 function 返回一个 boolean 值。 但是,返回isValidOrg给了我Promise { <pending> }而 console.logging 变量给了我需要的答案。 在我的情况下是否有可能返回 0 或 1?

const GetOrganization = userId => {
    return User.aggregate([
            { $match: { _id: mongoose.Types.ObjectId(userId) } },
            {
              $project: {
                _id: 0,
                organization: 1
              }
            }
        ])
}
async req => {
    const token = req.headers['authorization'].substr(7);
    const secret = req.headers['x-client-secret'];
    const xOrg = req.headers['x-organization']
    const { _id } = jwt.verify(token, secret)

    const isValidOrg = await GetOrganization(_id).then(res => {
        return xOrg !== res[0].organization ? 0 : 1
    })

    console.log(isValidOrg)
    return isValidOrg // <-- This line here returns Promise { <pending> }, I need 0 or 1
}

这个用例是完全错误的。

const isValidOrg = await GetOrganization(_id).then(res => {
        return xOrg !== res[0].organization ? 0 : 1
})

为什么要链接。那么,只需将其分配给 isValidOrg 并在下一行中对其进行评估。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM