Open In App
Related Articles

How to execute an array of synchronous and asynchronous functions in Node.js?

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

We have an array of functions, some functions will be synchronous and some will be asynchronous. We will learn how to execute all of them in sequence.

Input:

listOfFunctions = [
    () => {
        console.log("Synchronous Function);
    },
    async () => new Promise(resolve => {
        setTimeout(() => {
            resolve(true);
            console.log("Asynchronous Function);
        }, 100);
    }),
    .
    .
    .
]

Approach 1: Treat all functions as asynchronous functions and execute them. Because in Javascript, even if you treat a synchronous function as asynchronous function, there is no problem.

Example:

index.js

// this is our list of functions
let listOfFunctions = [
  () => {
      console.log("Synchronous Function Called");
  },
  async () => new Promise(resolve => {
      setTimeout(() => {
          console.log("Asynchronous Function Called");
          resolve(true);
      }, 100);
  })
]
  
// this function will be responsible
// for executing all functions of list
let executeListOfFunctions = async(listOfFunctions) => {
  for(let func of listOfFunctions){
      await func();
  }
}
  
// calling main function
executeListOfFunctions(listOfFunctions);

                    

Output:

Approach 2: The Idea is same but, Implementation is easy in this approach.

Example:

index.js

// this is our list of functions
let listOfFunctions = [
  () => {
      console.log("Synchronous Function Called");
  },
  async () => new Promise(resolve => {
      setTimeout(() => {
          console.log("Asynchronous Function Called");
          resolve(true);
      }, 100);
  })
]
  
// this function will be responsible
// for executing all functions of list
let executeListOfFunctions = async(listOfFunctions) => {
  return Promise.all(listOfFunctions.map(func => func()));
}
  
// calling main function
executeListOfFunctions(listOfFunctions);

                    

Output:



Last Updated : 07 Oct, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads
Complete Tutorials