비동기 제어
콜백은 에러 분기처리 필수적
비동기 함수 보통 args 2개 줌(에러,결과)
비동기 작업이 연속되면 복잡, 중첩, 가독성 떨어지고,
에러핸들링(비동기 작업이 실패할 때도 있음) 로직까지 더해지면=> 콜백지옥
control 수동적이고 제약이 심함
현업에서는 콜백보다 promise/async/await 사용됨
**에러 핸들링이 코딩에서 매우 중요한 부분
수동적이고 제한적으로 '콜백'을 핸들링하던 것을
조금 더 능동적으로 컨트롤 함.
객체지향의 대표적인 예
-프로미스 생성자 함수=>new Promise 쓰면 객체 인스턴스 만들 수 있음
-아래 예제에서는 promise라는 객체를 만듦
-함수를 인자(args)로 받음 (순서와 이름은 정형화되서 resolve, reject)
생성함수 인자로 들어간 내부함수에서 => 비동기 작업
을 함
프러미스 객체는
미래에 맞이할 성공/실패에 대한 결과 값을 미리 나타냄(약속)
성공 :resolve
실패 :reject 실행
프로미스 객체 상태 결과값 3가지 상태
한번이라도 성공/실패하면 초기상태로 돌아갈 수 없음
Pending: 아직 결과가 정해지지 않은 상태
Fulfilled: 성공한 상태
Rejected: 실패한 상태
프러미스 인스턴스 => .then, .catch 메소드 사용 가능
💜참고자료
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise