220310 TIL & 회고

woobaeh·2022년 3월 10일
0

TIL

목록 보기
13/13

Promise

Promise는 자바스크립트에서 브라우저에서 제공하는 비동기 함수인 Web APIs를 실행할 때 실행한 코드가 완료 될때까지 대기하지 않고 바로 다음 코드를 실행할 수 있도록 해주고, 비동기 함수의 실행이 완료되면 then()함수를 통해서 그 결과에 대한 코드를 실행할 수 있게 해줍니다.

  • Promise는 new 생성자 함수를 사용해서 생성합니다.

    const promise = new Promise((resolve, reject) => {
     if(/*처리 성공 */) {
    	resolve("결과 데이터");
     } else {
    	reject(new Error("에러"));
     }
    });
  • 요청에 대한 응답이 성공적으로 오면, resolve() 함수에 결과 전달

  • 실패하면 reject()함수에 에러 전달.

  • Promise 실행 함수가 가지고 있는 두 개의 파라미터 resolvereject 는 각각 무엇을 의미하나요?

    • resolve : 주어진 값으로 이행하는 새로운 프라미스 객체를 반환. 주어진 값이 then 메서드를 가지는 값인 경우 then메서드를 따라가서 최종상태를 결정.
    • reject : 주어진 이유로 거절하는 새로운 프라미스 객체를 반환.
  • resolve, reject함수에는 인자를 넘길 수 있습니다. 이때 넘기는 인자는 어떻게 사용할 수 있나요?\

    • then(), catch(), finally()등 후속 처리 메서드를 통해 사용.
  • new Promise()를 통해 생성한 Promise 인스턴스에는 어떤 메서드가 존재하나요? 각각은 어떤 용도인가요?

    인스턴스 메서드

  • Promise.prototype.then 메서드는 무엇을 리턴하나요?

    • Promise를 리턴, Promise성공, 실패 경우 각각의 콜백함수를 인자로 받는다.
  • 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의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가지나요?

    • Pending(대기) : 비동기 처리 로직이 아직 완료되지 않은 상태
    • Fulfilled(이행) : 비동기 처리가 완료되어 프로미스 결과 값을 반환해준 상태
    • Rejected(실패) : 비동기 처리가 실패하거나 오류가 발생한 상태
  • await 키워드 다음에 등장하는 함수 실행은 어떤 타입을 리턴할 경우에만 의미가 있나요?

    async
    함수는 항상 promise를 반환합니다. 만약 async
    함수의 반환값이 명시적으로 promise가 아니라면 암묵적으로 promise로 감싸집니다.

    예를 들어

    async function foo() {
        return 1
    }

    위 코드는 아래와 같습니다.

    function foo() {
        return Promise.resolve(1)
    }
  • await 키워드를 사용할 경우, 어떤 값이 리턴되나요?

    Promise : async 함수에 의해 반환 된 값으로 해결되거나 async함수 내에서 발생하는 캐치되지 않는 예외로 거부되는 값

—————————————————————————————————
🔑

에러를 만나면 오히려 좋아 . 로그 찍어 두고 해결하는 과정을 즐기고 기록.
매일매일 문제를 스스로 정의하고 해결 방법을 찾아서 시도하는 과정을 연습한다

profile
상생을 통하여 파이를 훨씬 크게 키울 수 있다. WIN - WIN

0개의 댓글