web/javascript

JS Promise.all & Promise.race

blackbearwow 2023. 2. 21. 00:30

생활코딩 강좌: https://www.youtube.com/watch?v=a5AzftkvW9U&list=PLuHgQVnccGMBVQ4ZcIRmcOeu8uktUAbxI&index=5

 

Promise.all은 여러 작업을 모두 기다리는 것이고 Promise.race는 여러 작업중 가장 먼저 끝나는 작업만 기다리는 것이다.

 

promise를 반환하기 때문에 기다리고싶다면 await를 앞에 붙이면 된다.

Promise.all

function timer(time){
	return new Promise(function(resolve, reject){
		setTimeout(function(){
			resolve(time);
		}, time);
	});
}
console.time('Promise.all');
Promise.all([timer(1000), timer(2000), timer(3000)]).then(function(result){
	console.log('result', result);
	console.timeEnd('Promise.all');
});

Promise.race

function timer(time){
	return new Promise(function(resolve, reject){
		setTimeout(function(){
			resolve(time);
		}, time);
	});
}
console.time('Promise.race');
Promise.race([timer(1000), timer(2000), timer(3000)]).then(function(result){
	console.log('result', result);
	console.timeEnd('Promise.race');
});