web-dev-qa-db-ja.com

async awaitと.thenを一緒に使用する

_async/await_と.then().catch()を一緒に使用すると、次のような害がありますか?

_async apiCall(params) {
    var results = await this.anotherCall()
      .then(results => {
        //do any results transformations
        return results;
      })
      .catch(error => {
        //handle any errors here
      });
    return results;
  }
_
7
PixelPaul

Async/awaitを使用する場合、.then()をチェーンする必要はありません。resolve()によって返された結果を変数(例ではresponse)に格納するだけですが、あなたはあなたのコードを試す/キャッチする必要があるエラーを処理したい:

_async function f() {

  try {
    let response = await fetch('http://no-such-url');
  } catch(err) {
    alert(err); // TypeError: failed to fetch
  }
}
_

あなたの約束の使用:

throw new Error("oops!");

または

Promise.reject(new Error("Whoops!"));