如何在Typescript中包装异步/等待而没有错误和警告

时间:2018-11-26 10:37:46

标签: typescript async-await

我有一个fetch调用,它当然是异步的,但是我喜欢将所有这些包装到一个或多个函数中,因此调用函数不会打扰。

这就是我现在拥有的:

private async wrapFetch(url): Promise<void> {
    this.responseText = await this.doFetch(url);
}

private async doFetch(url): Promise<string> {
   return fetch(url)
      .then((rsp: response) => {
          return rsp.text();
      });
}

现在,我想调用wrapFetch,就像它是普通的异步函数一样

this.wrapFetch('some-url');

但是,此行给出以下警告:

Promise returned from wrapFetch is ignored

我试图从wrapFetch更改返回类型,但这使情况变得更糟。有关如何解决此问题或应该解决的任何建议

1 个答案:

答案 0 :(得分:1)

是打字稿或IntelliJ发出的警告(cf Intellij Idea warning - "Promise returned is ignored" with aysnc/await)? 无论如何,错误消息是指您不使用 wrapFetch方法返回的值。

要解决第二个问题(console.log调用的顺序) 您只需要使所有方法异步并添加await关键字 在方法调用之前(例如在doIt方法中...),即使您不在乎结果, 只是为了控制流程,我在示例stackblitz.com/edit/typescript-1iqahc?file=index.ts

中添加了它们