Node.js NodeJS返回布尔值,而不是promise pending
我需要从下面代码的第二个函数返回一个布尔值。然而,返回isValidOrg给了我承诺{},而console.logging变量给了我需要的答案。在我的情况下,是否有可能返回0或1Node.js NodeJS返回布尔值,而不是promise pending,node.js,promise,es6-promise,Node.js,Promise,Es6 Promise,我需要从下面代码的第二个函数返回一个布尔值。然而,返回isValidOrg给了我承诺{},而console.logging变量给了我需要的答案。在我的情况下,是否有可能返回0或1 const GetOrganization = userId => { return User.aggregate([ { $match: { _id: mongoose.Types.ObjectId(userId) } }, {
const GetOrganization = userId => {
return User.aggregate([
{ $match: { _id: mongoose.Types.ObjectId(userId) } },
{
$project: {
_id: 0,
organization: 1
}
}
])
}
这个用例是完全错误的
const isValidOrg = await GetOrganization(_id).then(res => {
return xOrg !== res[0].organization ? 0 : 1
})
为什么要链接。然后,只需将其分配给isValidOrg,并在下一行中对其进行评估。这是否回答了您的问题?所有异步函数都返回一个承诺-始终。这就是Javascript语言中异步函数的工作方式。异步函数的调用方必须使用.then或WAIT从该承诺中获取返回值。不能从异步函数返回普通值。
const isValidOrg = await GetOrganization(_id).then(res => {
return xOrg !== res[0].organization ? 0 : 1
})