callback
-> 문제 : 가독성이 떨어진다. (실행순서가 바로 눈에 들어오지 않는다.)
promise
기본형태 (11라인부터)
then이라는 메소드 가지고 있는 애가 promise의 인스턴스이다. 즉, delayP에서 만드는게 promise의 인스턴스.
resolve 에 결과값에 넘겨지게 되면 then에게 넘겨주게 된다.
프로미스에서는 콜백을 순차적으로 지정해준다.
아무 것도 리턴하지 않으면 result 값에는 undefined가 들어간다. then의 리턴값은 resolve한 프로미스를 리턴한다.
비동기 연산인 promise를 리턴하지 않기 때문에 지연 없이 마지막 로그가 찍힌 것
async/ await
async 도 promise 를 리턴한다. 즉 then을 쓸 수 있다. 여기서의 result 는 return 값이다.
(promise에서 then의 리턴값이 곧 다음 promise의 값으로 넘어가듯)
async 에서는 reject을 해야한다면 안에서 에러를 throw하면 된다.
awiat은 promise가 resolve 되어 결과값이 오길 기다린다.
then에서 받은 결과값을 마치 일반함수 리턴값을 받듯이 쓸수 있게 된다.
728x90
'FE > JavaScript' 카테고리의 다른 글
[JS] fetch polyfill (0) | 2023.03.21 |
---|---|
[JS] Axios (0) | 2023.03.21 |
[JS] 비동기 코드 제어하기 : callback / promise / async, await (0) | 2023.03.20 |
[JS] 비동기 흐름 : 배열 메서드 구현해보기 (Underbar) - 하 (0) | 2023.03.19 |
[JS] 프로토타입 체인 (0) | 2023.03.15 |