Dev./javascript
[JS] Promise.allSettled 사용하기
인쥭
2021. 11. 30. 14:49
반응형
// 1.
const promises = [
// some promises...
];
// 2.
const responses = await Promise.allSettled(promises);
// 3.
let results = [];
for(const { status, value = undefined } of responses) {
if(status === 'fulfilled')
results.push(value);
}
- Promise들을 포함하는 배열이 있다고 가정한다.
promises.push(new Promise((resolve, reject) => { ... })); 의 형식으로 추가할 수 있다! - 모든 promises 배열의 Promise들이 모드 settled(fulfilled 또는 rejected 상태)가 될 때까지 기다린 후 결과를 responses 배열에 담는다.
- Promise.allSettled의 결과는 { status: 'fulfilled', value: ~ } 또는 { status: 'rejected', reason: ~ }의 형태로 반환된다.
이를 이용하여 원하는 동작을 구현하자