Promise 함수는 resolve와 reject를 매개변수로 받습니다.
프로미스 생성자의 매개변수로 받는 실행함수는 매개변수로 두 가지 함수를 받아야 하는데
그게 resolve와 reject입니다. 첫 번째 함수(resolve)는 비동기 작업을 성공적으로 완료해 결과를 값으로 반환할 때 호출해야 하고, 두 번째 함수(reject)는 작업이 실패하여 오류의 원인을 반환할 때 호출하면 됩니다. 두 번째 함수는 주로 오류 객체를 받습니다.정리하자면 resolve는 비동기 작업 처리에서의 성공, reject는 실패라고 볼 수 있습니다.
mdn 예제
조건을 통해서 해당 전달인자를 리턴(?) 한다.
구글링 예제
.then() 메서드는 매개변수로 onFulfilled 함수와, onRejected함수를 받습니다.
p.then(onFulfilled, onRejected)
onFulfilled 함수는 promise가 수행 됐을 때 실행되고, 이행값 하나를 인수로 받습니다.
onRejected 함수는 promise가 거부될 때 실행되고, 거부이유 하나를 인수로 받습니다.
상황에 따른 리턴 값은 아래 Mdn 문서에서 확인이 가능합니다.
대부분의 경우에서는 resolve에 들어간 값을 받습니다.
.catch() 메서드는 매개변수로 에러를 처리하는 방법 (onRejected)를 받습니다.
이 메서드는 rejected 상태인 promise를 반환합니다.
참고자료 (promise.then(f, f) vs promise.then(f).catch(f) 는 무엇이 다를까?)
https://yceffort.kr/2021/07/promise-then-f-f-vs-promise-catch
Pending(대기) : 비동기 처리 로직이 아직 완료되지 않은 상태
Fulfilled(이행) : 비동기 처리가 완료되어 프로미스가 결과 값을 반환해준 상태
Rejected(실패) : 비동기 처리가 실패하거나 오류가 발생한 상태
promise에 의해 만족하는 값일 경우에만 함수 실행에 의미가 있다.
fullfilled된 상태인 promise의 값이 리턴된다.