- Promise
- Async & Await
Promise
Promise개체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.
일단 콜백지옥을 해결하기 위해 탄생!
언젠가 끝나는 작업의 결과값을 담는 통과 같은 객체
Promise생성자는 콜백을 인수로 받습니다. 2가지값이 인수로 들어옵니다.resolve인수로 준값이 Promise 객체의 결과값reject비동기 작업에서 에러가 발생했능 때 호출하는 함수
then메소드를 통해 콜백을 등록해서, 작업이 끝났을 때 결과값을 가지고 추가 작업then메소드 자체도 Promise객체를 반환, 콜백에서 반환한 값이 곧 Promise의 결과값
1 | function delay(ms, vaule) { |
- 함수를 호출하고 1초 뒤에 ‘hello’가 채워진 통의 반환
- 반환된 값을 이용해 콜백함수가 실행
- 2초 뒤에 ‘hello ria’가 채워진 값이 반환
- ‘hello ria’가 콘솔창에 출력
1 | // axios로 통신 |
Async & Await
Async
함수 앞에 async을 붙이면 비동기함수
비동기함수는 항상 promise 객체를 반환한다.
Await
- 비동기 함수내에서 사용
await뒤에 오는 Promise가 결과값을 가질때 함수를 잠시 멈추고, Promise 통에 값이 채워지면 함수를 다시 실행하여 값을 반환await연산자이면서 값을 변수에 저장 가능await연산의 결과값은 뒤에 오는 Promise 객체의 결과값- 제어구문에서 사용 가능
- 동기식 코드를 짜듯이 비동기식 코드를 짤수 있어서 코드가 간략
1 | // 비동기 함수 |
