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

如何将单API调用场景下的Promise.all改为直接使用Promise

解决方案

直接去掉Promise.all即可,因为getCall()本身就是一个Promise,完全不需要额外包装。修改后的代码如下:

getCall()
  .then(res => {
    if (res.errorObject) {
      props.Error(res);
    } else { 
      // ----code here---
    }
  })
  .catch(err => {
    console.log(err); 
  });

说明:

  • 原来用Promise.all([getCall()])时,Promise会把单个请求的结果包装成数组返回,所以你需要用res[0]取结果;直接调用getCall()的话,then的参数就是请求返回的原始对象,不用再通过下标取值。
  • 错误处理逻辑完全不用改,单个Promise的rejection依然会被后面的catch捕获,和原来Promise.all的行为一致。
  • 这种写法更简洁,也符合单个Promise的使用习惯,没必要多一层Promise.all的冗余包装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:32:32