7. var, let, const의 차이에 대해 알려주세요
답변
8. Async/Await와 Promise의 차이
답변
- Promise :
3가지 상태
- Pending (대기)
- Fulfilled (이행)
- Rejected (실패)
비동기 처리가 완료 되지 않았다면 Pending, 완료 되었다면 Fulfilled, 실패하거나 오류가 발생하였다면 Rejected 상태
- Async/Await :
callback 이나 Promise 의 경우에 단점은 콜백 지옥, then() 지옥이라고 부른다.
await 를 통해 Promise 반환 값을 받아 올 수 있다.
await 는 async 함수 안에서만 동작
- 차이점
- 에러 핸들링
Promise 를 활용할 시에는 .catch() 문을 통해 에러 핸들링이 가능하지만, async/await 은 에러 핸들링 할 수 있는 기능이 없어 try-catch() 문을 활용해야 한다
async/await error가 어디서 발생했는지 알기 쉽다
- 코드 가독성
Promise의 .then() 지옥의 가능성
- 코드가 길어지면 길어질수록,
async/await 를 활용한 코드가 가독성이 좋다.
async/await 은 비동기 코드가 동기 코드처럼 읽히게 해준다. 코드 흐름을 이해 하기 쉽다.
- 비동기처리 : 특정 로직의 실행이 끝날때까지 기다려주지 않고 나머지 코드를 먼저 실행하는것
- 무엇이 어떤 순서로 진행될지 예측하기가 상당히 어렵다
- 콜백지옥 : 각각의 비동기 작업이 "끝"났을 때 뒤에 이어질 작업을 미리 부여하는 식으로 흐름을 제어하기 때문에