← Back to NOTES 🌰 ← Effective JavaScript 🤿

← 아이템 61 - 이벤트 큐를 IO에 블로킹시키지 마라

핵심 요약

자세한 내용

비동기 연산의 순서 문제

데이터베이스에서 값을 가져오고 나서 그것을 활용하려면 어떻게 해야 할까?

단순히 콜백을 분리하면 바인딩 문제가 발생한다. 탐색한 결과(url)가 아직 사용 가능하지도 않은 상태에서 다음 작업이 실행된다.

해결 방법

1. 콜백 감싸기

두 번째 콜백을 첫 번째 콜백 안에 포함시킨다. 외부 콜백 변수에도 접근 가능하다. 하지만 코드가 길어지면 거추장스러워진다.

2. 이름이 지정된 함수로 콜백 추출

콜백을 이름 지정된 함수로 들어낸다. 더 깔끔하지만 여전히 콜백 함수가 남아있다.

3. bind 사용

bind를 사용하여 콜백 함수도 제거할 수 있다. 하지만 계속 이름도 지어야 하고 binding 복사하는 비용도 있다.