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[]
orparam: 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 fromthrow
). -
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 - ifthrowError
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! ;)