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

如何改写JavaScript类方法使其返回Promise已解析结果而非Promise

如何让异步方法直接返回同步的CompanyDto[]结果?

首先明确:异步操作(比如你的HTTP请求)不可能直接返回同步的CompanyDto[]类型结果。因为fetchAsync是异步执行的,需要等待请求完成才能拿到数据,而JavaScript/TypeScript的语法规定:async标记的方法,返回值必然是Promise类型,无法直接返回同步的结果对象。

你不需要改写GetAllCompanies方法,而是在调用它的时候,通过await或者.then()来获取实际的CompanyDto[]数据:

方式1:在异步函数中使用await(推荐)

// 示例调用代码
async function loadCompanies() {
  const myClass = new MyClass();
  // await会等待Promise完成,直接拿到CompanyDto[]类型的结果
  const companies: CompanyDto[] = await myClass.GetAllCompanies();
  
  // 在这里处理companies数据,比如渲染到页面
  console.log(companies);
}

// 调用这个异步函数
loadCompanies();

方式2:使用.then()处理结果

如果无法在异步函数中调用,可以用传统的Promise回调:

const myClass = new MyClass();
myClass.GetAllCompanies().then((companies: CompanyDto[]) => {
  // 在这里处理companies数据
  console.log(companies);
});

另外注意你的原代码有个语法错误:export MyClass应该改为export class MyClass,否则无法正确导出类。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 07:37:07