返回承诺并在其中解决多个等待

时间:2021-02-16 15:25:18

标签: javascript typescript async-await promise

所以我必须创建一个函数:

const someData = await this.someservice.generateData();

现在,在 generateData() 中:

generateData(){
  try{
    const d1= await this.someServerCall();
    const d2 = await this.someServerCall2();
    
    // resolve promise with this data
    return { 
        obj1: d1,
        obj2: d2
    }
  } catch(e){
     // reject Promise
  }

}

我无法理解如何将其包裹在里面:

return new Promise(function (resolveFunc, rejectFunc) {
   resolveFunc(some_data)
   rejectFunc(error);
}

以便通过调用 await this.someservice.generateData(); 获取数据当我将 serverCalls 放入 Promise 时,我得到 Untyped function calls may not accept type arguments.t

1 个答案:

答案 0 :(得分:1)

您只需将 generateData 声明为异步函数即可。

async generateData(){
  try{
    const d1= await this.someServerCall();
    const d2 = await this.someServerCall2();
    
    // resolve promise with this data
    return { 
        obj1: d1,
        obj2: d2
    }
  } catch(e){
     // reject Promise
  }

之后你可以用 await 调用它。