이벤트를 연결할 때는 함수 실행을 연결하는 것이 아니라 함수 자체를 연결하는 것이다
예를 들어 아래와 같은 코드들을 들 수 있다.
document.querySelector('#btn).onclick= handleClick; // (o)
document.querySelector('#btn).onclick= function(){handleClick();} // (o)
document.querySelector('#btn).onclick= handleClick.bind(); // (o)
document.querySelector('#btn).onclick= handleClick() //(X) 함수의 실행을 연결하는 경우임
비동기의 경우 요청에는 blocking이 없이 진행되고 응답이 비동기적으로 이루어진다. 즉 동기와 같이 요청에 대한 결과가 동시에 일어나지 않는다!
//1번 : callback 패턴
let request = "caffelatte"
orderCoffeeAsync(request, function(response){
drink(response); // response => 주문한 커피 결과
});
//2번 : 이벤트 등록 패턴
let request = "caffelatte"
orderCoffeeAsync(request).onready = function(response){
drink(response); // response => 주문한 커피 결과
});
⇒ A,B,C가 순서대로 출력되지 않는다!
