https://runkit.com/fixerror/runkit-npm-async-queue-promise
or
https://www.npmjs.com/package/async-queue-promise
npm i async-queue-promise
import Queue from 'async-queue-promise';
const instance = new Queue();
const delay = (time, value) => () => new Promise((resolve) => {
setTimeout(() => {
resolve(value);
}, time);
});
const run = async () => {
let result5;
setTimeout(() => {
result5 = instance.add(delay(500, 'time 5'));
}, 500);
const result1 = instance.add(delay(3000, 'time 1'));
const result2 = instance.add(delay(1000, 'time 2'));
const result3 = instance.add(delay(2000, 'time 3'));
const result4 = instance.add(delay(1000, 'time 4'));
console.log(await result1);
console.log(await result2);
console.log(await result3);
console.log(await result4);
console.log(await result5);
};
run();
//time 1
//time 2
//time 3
//time 4
//time 5