타이머 API과제를 수행하였다. 다양한 질문에 답을 작성해보았다.
비동기작업의 처리과정에서 성공/실패를 구분하는 방법으로,
resolve는 다음 프로세스로 넘어갈수있고, reject는 실패상태로 err를 넘겨줄수있다.
resolve로 응답한 경우, then 메소드에서 데이터를 전달받아 처리하며, reject로 응답이 된 경우 catch 메소드에서 에러를 처리한다.
then: 두 개의 콜백 함수를 인자로 받으며, 첫번째 함수는 성공 시, 두번째 함수는 실패시 호출 된다. then은 Promise를 반환한다.
catch: 에러가 발생하면 호출되며, then의 두번째 인자와 같은 역할을 한다. catch는 Promise를 반환한다.
Promise.prototype.then 메서드는 무엇을 리턴하나요?
이행 또는 거부 처리기를 추가하고 호출된 처리기의 반환값 또는 프로미스가 처리되지 않은 경우 그 원래 처리된(settled) 값으로 결정하는 새 프로미스를 반환합니다. 전에 있던 결과값을 return 값을 받아오는것으로 한다.
Promise.prototype.catch 메서드는 무엇을 리턴하나요?
프로미스(promise)에 거부 처리기 콜백을 추가하고 호출된 경우 콜백의 반환값 또는 프로미스가 대신 이행된 경우 그 원래 이행(fulfillment)값으로 결정하는(resolving) 새 프로미스를 반환합니다. 가급적 catch()로 에러를 처리하는 게 더 효율적이다.
Promise의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가지나요?
-pending(대기): 비동기 처리 로직이 아직 완료되지 않은 상태
-fulfilled(이행): 비동기 처리가 완료되어 프로미스가 결과값을 반환해준 상태
-rejected(실패): 비동기 처리가 실패하거나 오류가 발생한 상태