setTimeout()과 같은 비동기 코드는 콜백 함수가 setTimeout()과 딱 붙어 있어서 콜백 함수의 위치를 변경할 수가 없었습니다. 하지만 프로미스로 만들면 필요할 때 then()을 호출할 수 있어서 편리합니다.
const setTimeoutPromise = (ms) => new Promise((resolve, reject) => {
setTimeout(resolve, ms);
});
const promise = setTimeoutPromise(0);
console.log('다른 일을 하다가');
console.log('필요할 때');
console.log('then을 호출해 보세요.');
promise.then(() => {
console.log('0초 뒤에 실행됩니다.');
});
promise.catch((err) => {
console.log('에러 발생 시 실행됩니다.');
});
다른 일을 하다가
필요할 때
then을 호출해 보세요.
0초 뒤에 실행됩니다.