Как обернуть async / await в Typescript без ошибок и предупреждений - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть вызов извлечения, который, конечно, является асинхронным, но мне нравится оборачивать все это в одну или несколько функций, чтобы вызывающая функция не беспокоилась.

Это то, что я имею сейчас:

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 голосов
/ 26 ноября 2018

Это предупреждение вызывается машинописью или IntelliJ (см. Предупреждение Intellij Idea - "Возвращенное обещание игнорируется" с aysnc / await )?В любом случае сообщение об ошибке ссылается на тот факт, что вы не используете значение, возвращаемое методом wrapFetch.

Чтобы исправить вторую проблему (порядок вызовов console.log), вам просто нужно сделатьвсе ваши методы асинхронны и добавляются ключевое слово await перед вызовами методов (например, в методе doIt), даже если вы не заботитесь о результате, только для потока управления, я добавил их в примере stackblitz.com / edit / typescript-1iqahc? file = index.ts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...