간단한 wait 함수를 만들도록 하겠습니다.
const wait = (time) =>
new Promise((resolve) => {
setTimeout(() => {
resolve();
}, time);
});
const func1 = async () => {
await wait(1000);
console.log("1 done");
};
const func2 = async () => {
await wait(1000);
console.log("2 done");
};
func1().then(func2)
1 done
2 done
reduce함수를 이용하여 해당작업은 간편하게 할 수 있습니다.
[func1, func2].reduce((p, f) => p.then(f), Promise.resolve());
const run = async () => {
await func1();
await func2();
};
run();
for of 사용
const run = async () => {
for (const func of promises) {
await func();
}
};
run();
recude 사용
promises.reduce(async (prev, current) => {
await prev;
return current();
}, Promise.resolve());