참고 예제 코드
const f1 = (message) => { console.log(message); return new Promise((res, rej) => { setTimeout(() => { res('1번 주문'); }, 3000); }); }; const f2 = (message) => { console.log('2번', message); // 2번 1번 주문 return new Promise((res, rej) => { setTimeout(() => { res('2번 주문'); }, 1000); }); }; const f3 = (message) => { console.log('3번', message); //3번 2번 주문 return new Promise((res, rej) => { setTimeout(() => { res('3번 주문'); }, 2000); }); };
promise
console.time('xx'); Promise.all([f1(), f2(), f3()]).then((res) => { console.log(res); console.timeEnd('xx'); // 대략 3초 });
function pickAll() { return Promise.all([getApple(), getBanana()]).then((fruits) => fruits.join('+') ); } pickAll().then(console.log);
const readAllUsers = () => { return new Promise((res, rej) => { let one = getDataFromFilePromise(user1Path).then((data) => JSON.parse(data) ); let two = getDataFromFilePromise(user2Path).then((data) => JSON.parse(data) ); Promise.all([one, two]).then((data) => res(data)); }); };
async
async function order() { try { const result = await Promise.all([f1(), f2(), f3()]); console.log(result); } catch (e) { console.log(e); } } console.log('end'); async function order2() { let promiseDummy = [Promise 객체, Promise 객체, Promise 객체] return Promise.all(promiseDummy) }
console.time('xxx');
Promise.race([f1(), f2(), f3()]).then((res) => {
console.log(res);
console.timeEnd('xxx'); // 대략 1초
});