Promise는 자바스크립트에서 브라우저에서 제공하는 비동기 함수인 Web APIs를 실행할 때 실행한 코드가 완료 될때까지 대기하지 않고 바로 다음 코드를 실행할 수 있도록 해주고, 비동기 함수의 실행이 완료되면 then()함수를 통해서 그 결과에 대한 코드를 실행할 수 있게 해줍니다.
Promise는 new 생성자 함수를 사용해서 생성합니다.
const promise = new Promise((resolve, reject) => {
if(/*처리 성공 */) {
resolve("결과 데이터");
} else {
reject(new Error("에러"));
}
});
요청에 대한 응답이 성공적으로 오면, resolve() 함수에 결과 전달
실패하면 reject()함수에 에러 전달.
Promise 실행 함수가 가지고 있는 두 개의 파라미터 resolve
와 reject
는 각각 무엇을 의미하나요?
resolve
, reject
함수에는 인자를 넘길 수 있습니다. 이때 넘기는 인자는 어떻게 사용할 수 있나요?\
new Promise()
를 통해 생성한 Promise 인스턴스에는 어떤 메서드가 존재하나요? 각각은 어떤 용도인가요?
Promise.prototype.then
메서드는 무엇을 리턴하나요?
Promise.prototype.catch
메서드는 무엇을 리턴하나요?
returns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
and deals with rejected cases only
(in fact, calling obj.catch(onRejected)
internally calls obj.then(undefined, onRejected)
Promise의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가지나요?
await
키워드 다음에 등장하는 함수 실행은 어떤 타입을 리턴할 경우에만 의미가 있나요?
async
함수는 항상 promise를 반환합니다. 만약 async
함수의 반환값이 명시적으로 promise가 아니라면 암묵적으로 promise로 감싸집니다.
예를 들어
async function foo() {
return 1
}
위 코드는 아래와 같습니다.
function foo() {
return Promise.resolve(1)
}
await
키워드를 사용할 경우, 어떤 값이 리턴되나요?
Promise : async 함수에 의해 반환 된 값으로 해결되거나 async함수 내에서 발생하는 캐치되지 않는 예외로 거부되는 값
—————————————————————————————————
🔑
에러를 만나면 오히려 좋아 . 로그 찍어 두고 해결하는 과정을 즐기고 기록.
매일매일 문제를 스스로 정의하고 해결 방법을 찾아서 시도하는 과정을 연습한다