我的代码看起来像这样:

return tes.setStatus(UserTestStatus.Paused)
  .then(() => {
     return tes.getTests(exs.exam.examId)
        .then(() => {
           tes.setCurrent($stateParams.testId);
        });
  });


我的代码中有很多次这种事情,但是我不确定是否可以通过任何方式简化。请注意,setStatus和getTests都返回promise。 setCurrent不返回承诺。

最佳答案

如果将ES6作为目标并使用Typescript 1.7或更高版本,则可以使用await / async:

await tes.setStatus(UserTestStatus.Paused);
await tes.getTests(exs.exam.examId);
return tes.setCurrent($stateParams.testId);


并且您的函数setStatus和getStatus带有如下所示的异步标记:

public async setStatus(status: any): Promise<any>

10-02 11:45