Enjoy Programming

[ES] Promise allSettled 본문

JavaScript/Vanilla Js

[ES] Promise allSettled

LEETAEEON 2021. 7. 7. 14:07

오늘의 ES 마지막 포스팅이다. 화이팅!

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled

 

Promise.allSettled() - JavaScript | MDN

Promise.allSettled() 메소드는 배열이나 별도의 나열 가능한 객체를 통해 나열된 Promise모음이 모두 이행하거나 거부했을 때에 대한 대응을 할 수 있는 Promise 객체를 반환한다.

developer.mozilla.org

promise.allSettled() 메서드는 배열이나 별도의 나열 가능한 객체를 통해 나열된 Promise모음이 모두 이행하거나 거부했을 때에 대한 대응할 수 있는 Promise객체를 반환한다.

 

자 Promise.all()을 기억해보자 all은 여러 promise들중 하나라도 끝내지 못한다면 거절된다.

전부 제대로 이행하면 그때야 전부 배열로 반환한다.

 

Promise.allSettled는 모두 성공할 필요가 없다. 또한 배열로 반환하지 않고 오브젝트로 반환이 된다.

이렇게~~ object형태로 status 와  value 가 출력된다.

allsettled를 사용하면 모두 성공하지 않아도 되는 이유가 이것이다.

실패했다면 그이유도 출력해준다. 성공했다면 그 값을 반환해주고 전부다 실행시켜준다.

 

어디에 사용하는 것일까.. 모든 promise가 잘 작동하는지 확인할 필요가 없으면 allSettled를 사용하면된다.

반대로 확인을 해야한다면 all을 사용해주자.

기본적으로 all은 서로 관계가 있는 promise들을 동작시킬때 사용한다. 하나라도 실패하면 의미없는 promise인것