A tiny package to await a normal function.
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 */
}
To use this function: to(fnOrPromise [, options]);
fnOrPromise: Function | Promise | <Function | Promise>[]
the function or promise or array of them that you want to wait to.
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.
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! ;)