Quick actions

cmd+k|ctrl+k

Navigation

Languages

Efficient ES6 async await with fetch

Snippet info

Language

JavaScript

Visibility

public

Author

diemention

Created

2020-06-21T16:38:03Z

Updated

2020-06-21T17:11:08Z

https://gist.github.com/prof3ssorSt3v3/a70a75e65be1f65d31ef93b56c2c954d
https://www.youtube.com/watch?v=ycJOZp_wWak

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <!--
      Combining async await with fetch
    -->
  </head>
  <body>
    <script>
      (async function f() {
        let badurl = "http://";
        let goodurl = "http://jsonplaceholder.typicode.com/users";
        let url = Math.round(Math.random()) ? badurl : goodurl;

        let data = await (await fetch(url).catch(handleErr)).json();
        if (data.code && data.code == 400) {
          //problem
          return;
        }
        console.log(data);
      })();

      function handleErr(err) {
        console.warn(err);
        let resp = new Response(
          JSON.stringify({
            code: 400,
            message: "Stupid network Error"
          })
        );
        return resp;
      }
    </script>
  </body>
</html>
INFO