This package has been deprecated

Author message:

Package no longer supported. Contact Support at for more info.

TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

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


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...

With TypeScript

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'

Package Sidebar


npm i await-it

Weekly Downloads






Unpacked Size

3.56 kB

Total Files


Last publish


  • dvlden