You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS中异步返回的Object无法用点操作符读取属性值如何解决

问题原因

get是async异步函数,所有异步函数默认返回 Promise 实例,而非你代码中 return 的实际业务对象。
你之前直接返回b时,外层调用abc的代码如果用了await接收,相当于自动穿透了两层 Promise 拿到最终的对象结果,所以看起来返回正常。
但你直接访问b.rating时,b还处于未完成状态的 Promise 实例,本身没有rating属性,所以返回undefined。

解决方法

在调用this.get时添加await关键字等待异步结果返回:

async abc(reviewId){
    // 添加await等待异步函数执行完成,拿到实际返回的对象
    let b = await this.get(reviewId) 
    return b.rating
}

另外需要注意,abc本身也是异步函数,外层调用的时候同样需要用await或者.then()的方式拿到最终的rating值:

// 调用示例1:await 接收
const rating = await abc('617a07afeae615cff755fec7')

// 调用示例2:.then 回调
abc('617a07afeae615cff755fec7').then(rating => {
  console.log(rating)
})

内容的提问来源于stack exchange,提问作者Swayam Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:45:02