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

JavaScript async函数返回[object Promise]问题求助

Async函数返回[object Promise]的原因及解决方法

问题本质

所有async函数的返回值都会被自动包装成Promise对象,哪怕你return的是普通值(比如你的serverRes)。你看到的[object Promise]就是这个特性导致的,函数内部逻辑没问题(从控制台能打印正确响应就能证明)。

解决方法

要获取Promise内部的实际结果,必须用以下两种方式处理:

方式1:用await调用(需在async环境中)

await只能在async函数内部使用,全局作用域调用可使用立即执行async函数:

// 全局作用域或非async函数中使用立即执行async函数
(async () => {
  let result = await getresult(input);
  console.log(result); // 输出 {text: 'hello!'}
})();

// 如果本身就在async函数里,直接用await
async function someOtherFunc() {
  let result = await getresult(input);
  // 处理result...
}

方式2:用.then()链式调用

这是处理Promise的通用方式,无需依赖async环境:

getresult(input).then(result => {
  console.log(result); // 输出 {text: 'hello!'}
  // 处理result...
});

补充说明

你之前的代码let result = getresult(input);只是拿到了async函数返回的Promise实例,并没有获取到它最终resolve的值。只有通过await或.then(),才能提取出Promise内部的实际响应数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:45:43