- 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 | // 비동기 함수 |