using Promise.allSettled()
- In this approach, we will use Promise.allSettled() which will be executed in a quite similar manner as Promise.all() method executed by taking promises as input in the single array and executing them sequentially.
- There is a slight difference which is that this Promise.allSettled() method returns an array of objects in which along with the state of each promise (either fulfilled or rejected), the value of each promise is also there.
Example: Let us see the following code which illustrates the above approach:
Javascript
let promise1 = new Promise((resolve, reject) => { resolve( "Hello! " ); }); let promise2 = new Promise((resolve, reject) => { setTimeout(() => { resolve( "w3wiki" ); }, 1000); }); const promises = [promise1, promise2]; const executePromisesSequentially = async () => { const result = await promises.reduce(async ( accumulator, currentPromise) => { const results = await accumulator; return [...results, await currentPromise]; }, Promise.resolve([])); console.log(result); }; executePromisesSequentially(); |
Output:
How to execute multiple promises sequentially in JavaScript ?
In this article, we will try to understand how we could easily execute multiple promises in a sequential manner (one after the other) with several techniques or methods provided by JavaScript.
Following are certain approaches through which we could easily execute multiple promises in a sequential manner:
Table of Content
- Using Promise.all()
- Using Promise.allSettled()
- Using for-of-loop along with the async-await
Let us first quickly understand how we may create a promise by using the following syntax provided by JavaScript.
Syntax:
let promise = new Promise((resolve, reject) => resolve(10));
By using the above syntax we could create our promise successfully by either resolving it (having the resolved state) or rejecting it (having the rejected state).
Example: In this example, we will create a simple promise just to see how it works or how it gets executed.
Javascript
let promise = new Promise((resolve, reject) => { resolve( "w3wiki" ); }); promise.then(result => console.log(result)); |
Output:
w3wiki
Note: Now that we have understood how to create a promise let us quickly see and visualize how we could execute multiple promises in a sequential manner.