Print
카테고리: [ Development ]
조회수: 780

1. 개요

Callback vs Promises vs Async Await 차이점은 무엇인가?


2. Callback

JavaScript에서 함수는 객체이다. 따라서 객체를 매개변수로 함수에 전달할 수 있다. 함수를 다른 함수에 매개변수로 전달하고 외부 함수 내부에서 호출할 수도 있다. 따라서 콜백은 다른 함수에 전달되는 함수이다. 첫 번째 기능이 완료되면 두 번째 기능을 실행한다.


3. Promise

JavaScript의 Promise는 실생활의 Promise와 비슷하다. 우리가 실생활에서 약속을 할 때, 그것은 우리가 미래에 무언가를 할 것이라는 보장이다. 약속은 미래에 대해서만 할 수 있기 때문이다.

 

약속에는 두 가지 가능한 결과가 있다. 때가 되면 지키거나 지키지 않을 것이다. 이것은 JavaScript의 Promise에서도 마찬가지이다. JavaScript에서 Promise를 정의하면 때가 되면 해결되거나 거부된다.

 

마치 IF 조건처럼 들리지만 그들 사이에는 큰 차이점이 있다. Promise는 작업의 비동기 결과를 처리하는 데 사용된다. JavaScript는 코드의 다른 동기 부분이 실행되기 전에 비동기 코드 블록이 완전히 실행될 때까지 기다리지 않도록 설계되었다. Promises를 사용하면 비동기 요청이 완료될 때까지 코드 블록의 실행을 연기할 수 있다. 이렇게 하면 다른 작업을 중단없이 계속 실행할 수 있다.


4. Async / Await

Await는 기본적으로 Promises의 구문 설탕(syntactic sugar)이다. 비동기 코드를 사람이 이해하기 더 쉬운 동기/절차 코드처럼 보이게 한다.