Promise: 비동기 작업의 결과를 나타내는 객체 결과가 준비됐을 수도 있고 준비되지 않았을 수도 있는데 Promise API는 이를 의도적으로 막연하게(?) 표현한다. Promise의 값을 동기적으로 가져올 수 있는 방법은 존재하지 않는다. 값이 준비됐을 때 콜백 함수를 호출하도록 Promise에 요청할 수 있을 뿐. 콜백 기반 비동기 프로그래밍의 심각한 문제는 콜백 지옥이 생긴다는 것인데, 콜백 지옥이란 콜백 안에 콜백, 그 안에 또 콜백이 이어져 들여쓰기가 너무 심하게 되는 형태를 말한다. Promise는 이런 중첩된 콜백을 좀 더 선형에 가까운 Promise 체인으로 바꿔주기 때문에 코드의 가독성을 높여준다. 콜백에는 에러 처리가 어렵다는 문제도 존재한다. 비동기 함수(또는 비동기적으로 호출된 ..