Bare Minimum Requirements
- Promise 실행 함수가 가지고 있는 두 개의 파라미터 resolve와 reject는 각각 무엇을 의미하나요?
: new Promise() 메서드를 호출할 때 콜백 함수를 선언할 수 있고 그 때 함수의 인자가 resolve, reject 임.
비동기 작업이 성공한 경우 resolve()를, 실패한 경우 reject() 를 호출함.
resolve를 실행하면 이행 상태가 되고 이행 상태가 되면 then()을 이용해서 처리 결과 값을 받을 수 있음.
reject를 호출하면 실패 상태가 됨. 실패 상태가 되면 실패한 이유(실패 처리 결과 값)를 catch()로 받을 수 있음
- resolve, reject 함수에는 전달 인자를 넘길 수 있습니다. 이때 넘기는 전달 인자는 어떻게 사용할 수 있나요?
# 실습 예제 있음
- new Promise() 를 통해 생성한 Promise 인스턴스에는 어떤 메서드가 존재하나요? 각각 어떤 용도인가요?
: then() 메서드는 Promise를 리턴하고 이행 했을 때와 거부했을 때를 위한 콜백 함수 2개를 인수로 받음
cathch() 메서드는 리젝트를 호출해 실패 상태가 되면 실패 처리 결과 값을 catch()로 받을 수 있음
- Promise.prototype.then 메서드는 무엇을 리턴하나요?
: resolve() 에 전달 인자로 넣어준 값
이행하거나 거부 했을 때 각각 해당하는 핸들러 함수가 비동기적으로 실행.
→ 함수가 값을 반환한 경우, then에서 반환한 프로미스는 그 반환값을 자신의 결과 값으로 하여 이행
→ 값을 반환하지 않을 경우, then에서 반환한 프로미스는 undefined를 결과 값으로 이행
→ 오류가 발생할 경우, then에서 반환한 프로미스는 그 오류를 자신의 결과값으로 거부함
→ 이미 이행한 프로미스를 반환할 경우 , then에서 반환한 프로미스는 그 프로미스의 결과 값을 자신의 결과 값으로 하여 이행
→ 이미 거부한 프로미스를 반환할 경우 , then에서 반환한 프로미스는 그 프로미스의 결과 값을 자신의 결과 값으로 하여 거부
→ 대기 중인 프로미스를 반환할 경우 , then에서 반환한 프로미스는 그 프로미스의 이행 여부와 결과 값을 따름
- Promise.prototype.catch 메서드는 무엇을 리턴하나요?
: reject()에 전달 인자로 넣어준 값
오류가 발생할 경우 리젝트를 호출해 그 자신의 실패 처리 결과로 받을 수 있음
- Promise의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가지나요?
: 프로미스의 3가지 상태 (처리 과정)
· Pending (대기) : 비동기 처리 로직이 아직 완료되지 않은 상태
· Fulfilled (이행) : 비동기 처리가 완료되어 프로미스의 결과 값을 반환해 준 상태
· Rejected (실패) : 비동기 처리가 실패 하거나 오류가 발생한 상태
- await 키워드 다음에 등장하는 함수 실행은 어떤 타입을 리턴할 경우에만 의미가 있나요?
: swati은 프로미스의 확장판. 프로미스 타입을 리턴한다 그래야 사용할 수 있다
await 식은 async 함수의 실시 중지하고 전달된 Promise의 해결을 기다린 다음 async 함수의 실행을 다시 시작하고 완료 후 값을 반환함.
- await 키워드를 사용할 경우, 어떤 값이 리턴되나요?
: resolve()에 전달 인자로 넣어준 값
# 실습 예제 있음
: 실습 결과 resolve()의 값이 await 키워드를 사용한 promise 콜백 함수에 담겨 있었음
추가 학습 내용
Function.prototype.bind
: bind() 메소드가 호출되면 새로운 함수를 생성.
받게되는 인자의 value로는 this 키워드를 설정하고 이어지는 인자들은 바인드된 함수의 인수 제공
Function.bind(thisArg, [arg1, arg2, ...])
- thisArg : this가 가리킬 객체 지정
- [arg1, arg2, ..] : 함수의 인자로 전달할 값
'💻 > [과제]' 카테고리의 다른 글
[과제] React Twittler Intro (0) | 2022.11.25 |
---|---|
[과제] Part 3 - fetch API (0) | 2022.11.23 |
[과제] Underbar (0) | 2022.11.22 |
[과제] localStorage 와 JSON (0) | 2022.11.15 |
[과제] pagination 구현 (0) | 2022.11.14 |