나는 몇 년 동안 웹 기반 Javascript (vanilla JS, jQuery, Backbone 등)를 해왔으며 최근에는 Node.js와 함께 일하고 있습니다. "비 차단"프로그래밍을 중단하는 데 시간이 걸렸지 만 이제는 IO 작업에 콜백을 사용하는 방법에 익숙해졌습니다.
Javascript는 본질적으로 단일 스레드입니다. 노드 "이벤트 큐"의 개념을 이해합니다. 내가 이해하지 못하는 것은 개별 자바 스크립트 작업이 "차단"대 "비 차단"인지 여부를 결정하는 것입니다. 나중 코드에서 사용하기 위해 동 기적으로 출력을 생성하기 위해 어떤 작업을 의존 할 수 있는지, 그리고 초기 작업이 완료된 후 출력을 처리 할 수 있도록 콜백을 전달해야하는 작업을 어떻게 알 수 있습니까? 비동기 / 비 차단 인 Javascript 함수 목록과 동기 / 차단 기능이있는 목록이 있습니까? Javascript 앱이 하나의 거대한 경쟁 조건이되는 것을 방해하는 이유는 무엇입니까?
노드의 IO 작업 및 웹에서의 AJAX 작업과 같이 시간이 오래 걸리는 작업은 비동기식이어야하므로 콜백을 사용해야합니다. 그러나 누가 "오래된"것으로 평가되는지 결정합니다. 이러한 작업 내에 일반 "이벤트 큐"에서 제거하는 트리거가 있습니까? 그렇지 않다면 변수에 값을 할당하거나 배열을 반복하는 것과 같은 간단한 작업과 다른 점은 무엇입니까? 동기 방식으로 마무리하는 데 의존 할 수 있습니까?
아마도 나는 이것을 올바르게 생각조차하지 못합니다. 누군가 나를 똑바로 설 수 있기를 바랍니다. 감사!