1.0.2 • Published 2 years ago

await-it v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Await it

A wrapper for async/await calls without the need of try/catch block.

If someone told you that you should try / catch once at the root of your application and then do your async calls anywhere in the codebase, they are wrong. You should try / catch every async / await call or use .then() / .catch() chainables. Better than callback hell? I think it leads to similar problem...

This module attempts to solve that nesting hell and instead provide clean and fluent api with tuple destructuring.

Installation (pick one)

  • npm i await-it
  • yarn add await-it

Usage

We'll pretend that we have some kind of Promise already declared globally, to avoid bulky README file.

// Fake Global Promises
const fakeResolve = Promise.resolve({ name: 'Nenad Novakovic', age: 28 })
const fakeReject = Promise.reject(new Error('Rejection reason...'))

Without TypeScript

import { it } from 'await-it'

(async () => { const res, err = await it(fakeResolve);

console.log(res) // { name: 'Nenad Novakovic', age: 28 } console.log(err) // null })()

(async () => { const res, err = await it(fakeReject);

console.log(res) // undefined console.log(err.message) // Rejection reason... })

<br>

> With TypeScript
```ts
import { it } from 'await-it'

(async () => {
  interface User {
    name: string;
    age: number;
  }

  const [res] = await it<User>(fakeResolve);

  console.log(res) // { name: 'Nenad Novakovic', age: 28 }
})()

Node Environment

// Import as CommonJS
const { it } = require('await-it')

// Import as ESM 
import { it } from 'await-it'