이벤트 루프, 콜백함수 (javascript)

샘물공원·2023년 4월 13일
0

javascript

목록 보기
6/8

이벤트 루프

  • 이벤트 루프 (Event Loop)는 JavaScript에서 비동기성을 처리하는 메커니즘 중 하나
  • 다음과 같은 주요 구성요소들이 서로 상호작용하면서 비동기적으로 처리되는 작업들을 순차적으로 처리할 수 있게 해준다.
    • 호출스택 / 메세지 큐 / 이벤트루프 / 백그라운드 / Web API
    • 이벤트 루프는 이러한 비동기 처리를 담당하는 메커니즘 중 하나입니다. 이벤트 루프는 먼저 호출 스택 (call stack)을 모니터링하다가, 스택이 비어있으면 큐 (queue)에서 다음 작업을 꺼내어 스택에 쌓습니다. 이 때, 이벤트 루프는 비동기 작업의 결과를 대기하면서, 다른 작업들을 처리할 수 있도록 해줍니다. 이벤트 루프는 이러한 작업들을 처리하는 동안, 호출 스택이 비어질 때마다 큐에서 작업을 꺼내어 실행합니다.
  • 이벤트 루프를 이용하면 JavaScript에서 비동기 작업을 보다 쉽게 처리할 수 있습니다. 이러한 메커니즘을 이용하여 비동기 코드를 작성하면, JavaScript 엔진은 코드를 효율적으로 처리할 수 있으며, 사용자 인터페이스의 반응성을 유지할 수 있습니다.

콜백함수

  • 콜백 함수는 다른 함수의 인자로 전달되어, 해당 함수 내에서 비동기적으로 처리되는 작업이 끝나면 호출되는 함수를 말합니다. 즉, 콜백 함수는 호출되는 함수에 의해 "콜백"되어 실행되는 함수 (많이 사용되는 예로는 비동기와 이벤트핸들러)
    function callback(err, data) {
     if (err) {
       // 에러 처리
     } else {
       // 데이터 처리
     }
    }
  • 여기서 err는 발생한 에러를 나타내는 객체이며, data는 처리할 데이터입니다. 콜백 함수는 비동기적인 작업을 처리하는 함수에 인자로 전달되며, 작업이 완료되면 호출됩니다. 콜백 함수는 인자로 전달되므로, 작업이 완료될 때까지 기다릴 필요가 없으며, 작업이 완료되면 즉시 호출됩니다.
profile
게임개발

0개의 댓글