JavaScript - Promise

김서영·2024년 2월 6일
0

Promise

자바스크립트에서 제공하는 비동기를 간편하게 처리하도록 도와주는 object객체

비동기 작업이 맞이할 미래의 완료 또는실패와 그 결과 값
최종 결과를 반환하는 것이 아니고, 미래의 어떤 시점에 결과를 제공하겠다는 '약속'(프로미스)을 반환

  • 정해진 기능을 수행하고 나서 수행이 성공했다면 성공 메세지를, 예상치 못한 에러가 생기면 에러를 표출할 수 있도록 함
    => 실행은 바로 하되, 결과값을 원할 때 쓸 수 있음
    => 실행과 결과 값을 둘다 바로 하고싶다면 then, await, Promise.all등을 활용하면 결과값을 기다린 후에 실행할 수 있음

프로미스가 가질 상태

  • 대기(pending): 이행하지도, 거부하지도 않은 초기 상태.
  • 이행(fulfilled): 연산이 성공적으로 완료됨.
  • 3거부(rejected): 연산이 실패함.
function fetchData() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('Data received');
        }, 1000);
    });
}

Promise.all

주어진 모든 프로미스가 이행하거나, 한 프로미스가 거부될 때까지 대기하는 새로운 프로미스를 반환

  • 반환하는 프로미스가 이행한다면, 매개변수로 제공한 프로미스 각각의 이행 값을 모두 모아놓은 배열로 이행
  • 배열 요소의 순서는 매개변수에 지정한 프로미스의 순서를 유지
  • 반환하는 프로미스가 거부된다면, 매개변수의 프로미스 중 거부된 첫 프로미스의 사유를 그대로 사용
profile
개발과 지식의 성장을 즐기는 개발자

0개의 댓글

관련 채용 정보