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! ;)