Notice
Recent Posts
Recent Comments
개발일지
[javascript] Promise(2) - all(), race() 본문
all()
- 파라미터의 모든 Promise() 처리를 완료했을 때 then() 의 핸들러 함수를 실행한다.
- Promise.all() 형태로 작성한다.
- 파라미터를 이터러블로 작성한다. : 작성한 순서대로 Promise 인스턴스 생성
- 실행자에서 실패가 발생했을 때 : reject() 가 발생한 시점에 then() 을 실행
function order(delay) {
return new Promise((resolve) => {
setTimeout(() => {
log("실행자:" + delay);
resolve(delay);
}, delay);
});
};
Promise.all([order(500).order(300), order(100)]).then((param) => log("then:" + param));
// 3개를 모두 실행한 후에 then() 을 한번만 호출- 이게 all()함수의 특징
// 하나라도 reject 발생하면 then 의 첫번째 파라미터를 발생시키지 않는다.
실행결과
실행자:100 실행자:300 실행자:500 then:500,300,100 |
race()
- resolve(), reject() 와 관계없이 처음 한 번만 then() 을 실행하고 더이상 실행하지 않는다.
function order(delay) {
return new Promise((resolve) => {
setTimeout(() => {
log(delay);
resolve(delay);
}, delay);
});
};
Promise.race([order(500), order(100), order(300)]).then((param) => log("then:" + param));
실행결과
100 then:100 300 500 |
'javascript' 카테고리의 다른 글
[javascript] async/await (1) (0) | 2021.12.29 |
---|---|
[javascript] Promise(1) - then(), catch(), finally(), resolve(), reject() (0) | 2021.12.29 |
변수 구분 , use strict (0) | 2021.07.27 |
Object, Instance, Property, function (0) | 2021.07.27 |
[Javascript]promise (0) | 2021.07.06 |