en.javascript.info/1-js/11-async/08-async-await/01-rewrite-async/solution.md
Nguyen Dang Quang dd6a630888
Update solution.md
Fix typos
2019-05-07 11:25:48 +07:00

853 B

The notes are below the code:

async function loadJson(url) { // (1)
  let response = await fetch(url); // (2)

  if (response.status == 200) {
    let json = await response.json(); // (3)
    return json;
  }

  throw new Error(response.status);
}

loadJson('no-such-user.json')
  .catch(alert); // Error: 404 (4)

Notes:

  1. The function loadJson becomes async.

  2. All .then inside are replaced with await.

  3. We can return response.json() instead of awaiting for it, like this:

    if (response.status == 200) {
      return response.json(); // (3)
    }
    

    Then the outer code would have to await for that promise to resolve. In our case it doesn't matter.

  4. The error thrown from loadJson is handled by .catch. We can't use await loadJson(…) there, because we're not in an async function.