스크립트

프로미스는 비동기 작업이 처리할 미래의 완료나 실패에 대한 값을 처리하는 객체이다. 프로미스를 이용하면 마치 동기 로직을 작성하는 것처럼 반환 받아 사용할 수 있다.

promise는 3가지 상태를 가진다.

정의

promise는 JS에서 비동기 처리를 하기 위한 객체이다. 3가지 상태를 가지고 있으며 미래의 성공 혹은 실패에 대한 값을 가지고 있다. 3가지 상태는 다음과 같다.

특징

비동기를 쉽게 순차적으로 작성할 수 있다.

비동기 함수 func1, func2, func3를 순차적으로 실행하기 위해 아래와 같이 작성할 수 있다.

Promise.resolve(3).then(func1).then(func2).then(func3).then(console.log);

then() 메소드는 promise를 반환한다. 이를 이용하여 체이닝을 하여 표현할 수 있게 된다.

함수를 composition하기 쉽다.

const applyAsync = (p, f) => p.then(f);
const composeAsync = (...af) => af.reduce(applyAsync, Promise.resolve(3));

const f = composeAsync(func1, func2, func3);