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

JS中调用async函数返回Promise<pending>如何获取PromiseResult的值

问题原因

async 声明的函数本质返回值是 Promise 实例,你直接同步执行 console.log(fetchData('ABC')) 时,异步请求还未执行完成,所以只能拿到状态为pending的Promise对象,无法同步获取到异步执行完成后存储在PromiseResult里的值。

另外你提供的原代码存在两处语法错误,先修正后才能正常运行:

async function fetchData (name) { 
  // 原错误:参数是name,错误引用了未定义的address变量
  let url = '/api/1?name=' + name; 
  // 原错误:await已经等待fetch返回结果,错误书写了无效的.then((data))语法
  let response = await fetch(url); 
  let data = await response.json(); 
  return data.name; 
}
获取返回值的两种方式

方法1:通过Promise的then回调取值

fetchData('ABC').then(res => {
  // res即为目标值"Hello"
  console.log(res);
})

方法2:在async作用域内通过await取值

场景1:在自定义async函数内调用

async function execute() {
  const res = await fetchData('ABC');
  console.log(res); // 输出"Hello"
}
execute();

场景2:顶层环境调用(支持ES2022标准的运行环境可直接使用)

const res = await fetchData('ABC');
console.log(res); // 输出"Hello"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:36:00