all 메소드
- 여러 promise 객체의 작업 성공 결과를 기다렸다가 모두 한번에 취합하기 위해서 사용한다.
- 만약 하나의 promise 객체라도 rejected 상태가 되면, 전체 작업이 실패한 것으로 간주할 때 사용한다.
=> 이러한 상황에 대비하려면 catch 메소드를 붙여주면 된다. - then 메소드처럼 새로운 promise 객체를 리턴한다.
- 아규먼트로 들어온 배열 안에 있는 모든 promise 객ㅊ체가 pending 상태에서 fulfilled 상태가 될 때까지 기다린 후에, 모든 promise 객체들이 fulfilled 상태가 되면 all 메소드가 리턴했던 promise 객체는 fulfilled 상태가 된다.
- 각 promise 객체의 작업 성공결과들로 이루어진 배열을 그 작업 성공 결과로 갖게 된다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
race 메소드
all 메소드와 마찬가지로 여러 promise 객체들이 있는 배열을 아규먼트로 받는다.
아규먼트로 들어온 배열의 여러 promise 객체들 중에서 가장 먼저 fulfilled 상태 또는 rejected 상태가 된 promise 객체와 동일한 상태와 결과를 갖게 된다.
말 그대로 race 메소드는 여러 promise 객체들을 경쟁시켜서 가장 빨리 상태가 결정된 promise 객체를 선택하는 메소드다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/race
allSettled 메소드
- settled : fulfilled 상태와 rejected 상태를 묶어서 settled 상태라고 한다.
- 배열 속 promise 객체들이 settled 상태가 되기만 하면 된다.
- 각 메소드가 리턴한 promise 객체가 A라고 할 때,
배열 내의 모든 promise 객체가 fulfilled 또는 rejected 상태갇 되기까지 기다린 후에,
pending 상태의 promise 객체가 하나도 없게 되면,
A의 상태값은 fulfilled 상태가 되고 그 작업 성공 결과로 하나의 배열을 갖게 된다. - 이 배열에는 아규먼트로 받았던 배열로 인한 요소들이 들어있다.
1) 최종 상태를 status 프로퍼티,
2) 그 작업 성공 결과는 value 프로퍼티,
3) 그 작업 실패 정보는 reason 프로퍼티
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
any 메소드
- 배열 속의 promise 객체 중 단 하나라도 fulfilled 상태가 되면 된다.
- 각 메소드가 리턴한 promise 객체가 A라고 할 때, promise 객체들 중에서 가장 먼저 fulfilled 상태가 된 promise 객체의 상태와 결과가 A에도 똑같이 반영된다.
- 만약 모든 promise 객체가 rejected 상태가 되면, AggregateError라고 하는 에러를 작업 실패 정보로 갖고 rejected 상태가 된다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any
728x90
'코딩도 합니다 > JS' 카테고리의 다른 글
[자바스크립트 js] async / await / try catch문 / finally문 / 비동기 실행 (0) | 2021.07.05 |
---|---|
[자바스크립트 js] axios (0) | 2021.07.04 |
[자바스크립트 js] rejected 상태일 때 콜백 추가 / catch 메소드 / finally 메소드 (0) | 2021.07.04 |
[자바스크립트 js] fetch / Promise 객체 / then 메소드 / Promise Chaining / 비동기 함수 (0) | 2021.07.03 |
[자바스크립트 js] setTimeout / setInterval / addEventListner / 비동기 함수 (0) | 2021.07.03 |