March 25, 2022

Promise

“결과를 내가 원할때 사용할 수 있다”

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve();
  }, 1000);
});

promise.then(() => console.log("a")); //1초 뒤에 then 안에 있는 console 실행

변수 저장해서도 사용 가능

const p = new Promise();

// 딴짓

const c = p.then((결괏값) => {
  // 결괏값 사용
}).catch((에러) => {})

요즘에는 프로미스를 다 async/await으로 바꾸는 추세다

프로미스의 최대 장점

const p1 = axios.get('서버주소1');
const p2 = axios.get('서버주소2');
const p3 = axios.get('서버주소3');
const p4 = axios.get('서버주소4');
const p5 = axios.get('서버주소5');

Promise.all([p1,p2,p3,p4,p5])
	.then((results) => {})
	.catch((error) => {});

Promise.allSettled([p1,p2,p3,p4,p5])
	.then((results) => {})
	.catch((error) => {});

이런 식으로 한번에 받아서 쓸 수 있다.

Promise.all의 단점

⇒ 하나라도 실패하면 다 실패 처리한다 (오류)

⇒ 몇번째가 실패한지도 모른다!

Untitled

그래서 나온게 Promise.allSettled