less than 1 minute read

  • 프라미스 체이닝이란 result 가 .then 핸들러의 체인을 통해 전달된다는 점에서 착안한 아이디어

  • promise.then 호출 시 프라미스가 반환되므로 연달아 then 호출 가능

  • 프라미스 하나에 .then 여러 개 추가하는 것은 체이닝이 아닌 여러 개의 핸들러를 등록한 것.

  • then 대신 프라미스를 반환하는 것으로도 비동기 작업 체이닝 가능

  • 콜백이 깊어질수록 해당 중첩 콜백은 외부의 변수에 접근할 수 있으므로 주의 필요

  • thenalbe 객체란 .then 을 가진 객체로 프라미스와 호환 가능한 ‘자체 객체’ (then 은 resolve, reject 라는 네이티브 함수를 인수로 받고 둘 중 하나가 호출될 때 까지 기다리므로 체이닝 가능)

  • 핸들러는 프라미스가 아닌 thenable 이라 불리는 객체 반환 가능하며 Promise 상속받지 않고 커스텀 객체 사용 가능

  • fetch 메서드는 url에 네트워크 요청을 보내고 그 값을 프라미스로 반환하며 프라미스는 response 객체와 함께 이행되며 다양한 매개변수 존재

  • 비동기 동작은 항상 체인 확장을 염두해둬야 하므로 항상 promise 객체 반환해야 함