Skip to main content

Using with async function

Use with global configured object

In the previous section, we have created a globally configured object. Now, we will use that configured object with our async function.

Creating an async function

Consider you have an async function that runs after 500 ms, takes in a param as number, and throws an error if that param is equal to 3. Otherwise, it follows the success case:

helper.js
export async function asynFunc(param) {
return new Promise((res, rej) => {
setTimeout(() => {
if (param === 3) return rej("ERROR!!");
res(param);
}, 500);
});
}

Wrap with wrapper

Now, we will wrap the above asyncFunction with our custom wrapper.

index.js
import { asyncWrapper } from "./config/wrappers";
import { asynFunc } from "./helper";

async function main() {
const result = await asyncWrapper.execute(asynFunc, 1);
}

main();

.execute

The prototype for this function is:

.execute(func: (param: T) => Promise<void>, param: T)

func is refered to as an async function that takes a single param. param refers to the object with multiple key-value pairs as input to func.

Single param

With the current provided support, an async function is required to take in a single param. That param can have multiple key-value pairs. e.g. fetchUrl(domain, path) should be converted to fetchUrl({domain, path})