How to run async functions in parallel?


A nodeJS script. I have a function in it:

async myFunc1(a, b, c) {

which returns some value but not Promise. I used to run it as this:

 let a1 = await myFunc1(1, "fds", 99);

Now I need to run dozens of them at the same time, and the input of the amount of them, with the arguments, comes from the user.

let lines = readDataFromUserProvidedFile();
for (let i = 0; i < lines; i++) {
    //how to run all the myFunc1(...) in parallel??
    //and then print out a result of each?

    myFunc1(lines[i], i, i*2);

How will I run them in parallel in such a way? And when a subsequent one returns a result, I want to print it right away.

For the function it takes around 10 minutes to return a value. It doesn’t do calculations, it waits for a result from remote web service.

>Solution :

You can create a collection of promises that will be executed in parallel and then iterate-await on the collection:


let lines = readDataFromUserProvidedFile();

const promises =, index) => myFunc1(line, index, index * 2));

// await the resolution of all promises and print the results as they become available
for await (const result of promises) {

Leave a Reply Cancel reply