#5-1
Promise를 쓰면 callback지옥에서 벗어난다는건 틀리다.
벗어날 수 있다는 것이지 무조건적으로 벗어난 다는 것이 아님.
인터프리터가 제어하는 것이 아닌 개발자가 제어할 수 있다는 장점이 있음.
##Drag & Drop event handler
let mousedown = e => {
let startX = e.pageX, startY = e.pageY,
mousemove = e => {
let dX = e.pageX - offsetX, dY = e.pageY - offsetY;
}, mouseup = e => {
window.removeEventListener('mousemove', mousemove);
window.removeEventListener('mouseup', mouseup);
}
window.addEventListener('mousemove', mousemove);
window.addEventListener('mouseup', mouseup);
}