A Go-inspired approach to handling fetch API

mmvergara - Aug 22 - - Dev Community

Javascript error handling can sometimes be confusing especially in using fetch, if you are using await you will need to wrap it in a try catch block to handle the error and we all know that it's a headache

Well what if i tell you we can do something like this

import { get } from "./eavfetch";

interface Book {
  id: string;
  title: string;
  author: string;
}

async function fetchBooks() {
  // data type is inferred as Book[]
  const [data, error] = await get<Book[]>("/books");

  if (error) {
    console.error("Failed to fetch books:", error);
    return;
  }

  if (data) {
    console.log("Fetched books:", data);
  }
}
Enter fullscreen mode Exit fullscreen mode

Now all of the sudden handling fetch seems easy and very straightforward and safe way to handle error and data right? Well that's the power of error as values approach

you can copy the eavfetch.ts/js in the repo and start using it right away.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .