await-fn

1.4.5 • Public • Published

Await Function

Greenkeeper badge Build Status Known Vulnerabilities Coverage Status

A tiny helper to make it easy to await a classic function (and now promises too).

Note that the web option has been removed in order to keep the package as small as possible - if you want you can add it yourselves: HTTP Responder

Type into the terminal

npm install --save await-fn

And into your code (on commonjs environments):

const to = require('await-fn');

or (node 13.0 - 13.2 with --experimental-modules flag, 13.2+ normally):

import to from 'await-fn';

or (in your HTML):

<script src="https://unpkg.com/await-fn"></script>

and you are good to go!

For example:

async function doThisNThat() {
    /** code code code */
    let [err, data] = await to((a, b) => a + b, { params: [1, 3] });
    if (err) {
        /** handle error - only if throwError is set to false! */
    }
    /** code code code */
}

Usage:

To use this function: to(fnOrPromise [, options]);

  1. fnOrPromise: Function | Promise | <Function | Promise>[] the function or promise or array of them that you want to wait to.

  2. options: {} includes:

    • params: any[] or param: any the input parameters for your function (for functions only).

    • throwError: boolean set to true if you wish the error to be thrown instead of returned (this option has been renamed from throw).

    • returnOne: boolean set to true so the result will be only in one parameter (instead of an array of two) - it can be either a result or an error.

Returned values:

And the results will be returned like this:

[error, data] where:

  • error: undefined | Error is an error object (depending on the options chosen - if throwError is set to true then this won't exist).

  • data: undefined | any | any[] is the function's returned value (if there is one) - if you inputted an array the result will be in an array too.

Happy waiting! ;)

Package Sidebar

Install

npm i await-fn

Weekly Downloads

128

Version

1.4.5

License

MIT

Unpacked Size

7.72 kB

Total Files

7

Last publish

Collaborators

  • 5c077m4n