javascript 이벤트 순환 이벤트 loop 의 간단 한 모델 해석 및 응용 분석

본 고의 실례 는 javascript 이벤트 순환 이벤트 loop 의 간단 한 모델 해석 과 응용 을 설명 합 니 다.여러분 에 게 참고 할 수 있 도록 공유 합 니 다.구체 적 으로 다음 과 같 습 니 다.
js 는 단일 스 레 드 이지 만 이벤트 loop 의 등장 으로 js 는 높 은 병행 을 처리 할 수 있 는 성능 을 가지 게 되 었 다.그럼 이벤트 루프 는 어떻게 이해 하나 요?인터넷 바 이 두 의 한 무더기 의 글,무슨 힙,stack,micro queue,macro queue 는 초보 자 들 을 직접 멍 하 게 합 니까?여기 서 아주 통속 적 인 이해 방식 으로 이벤트 루프 를 소개 합 니 다.
이벤트 loop 은 말 그대로 이벤트 순환 입 니 다.순환 인 이상 순환 하 는 것 은 무엇 입 니까?
js 파일 에 대해
1.현재 실행 중인 컨 텍스트(첫 번 째 는 전역 역할 영역)의 모든 동기 화 작업 을 수행 합 니 다.비동기 작업 의 투과 가 있 습 니 다.
2.퀘 스 트 대기 열 에서 첫 번 째 비동기 퀘 스 트 를 수행 합 니 다.
3.현재 비동기 작업 을 수행 하고 문맥 의 모든 동기 화 작업 을 수행 하 며 비동기 작업 이 있 습 니 다.
위의 실행 순서 에서 순환 이 무엇 을 수행 하 는 지 똑똑히 볼 수 있 습 니 다.이벤트 loop 순환 에서 의 순환 작업 은 다음 과 같 습 니 다.
상하 문 을 실행 하 는 모든 동기 화 작업 을 수행 하고 비동기 작업 을 보 여 줍 니 다
간단 한 실례 를 보십시오.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>event-loop-test</title>
</head>
<body>
  <script>
    setTimeout(function(){
      console.log('        ')
      new Promise(function(resolve,reject){
        resolve('    ')
      }).then(function(data){
        console.log(data)
      })
      console.log('      111')
      for(var i = 0; i<5000; i++){
        console.log('            ')
      }
      setTimeout(function(){
        console.log(22222)  //           testPromise  ,    for      ,testPromise        ,     
      },0)
    },0)
    for(var i = 0; i<5000; i++){
      console.log('  event loop')
    }
    for(var i = 0; i<5000; i++){
      console.log('  event loop2')
    }
    var testPromise = new Promise(function(resolve,reject){
      console.log('    promiseneibu')
      setTimeout(function(){
        resolve('promise  ')
        console.log('promise   console') 
      },10)
    })
    testPromise.then(function(data){
      console.log(data)
    })
    console.log('       ')
  </script>
</body>
</html>


위의 실례 와 분석 을 통 해 알 수 있다.
작업 대기 열 에 있 는 비동기 작업 의 투과 순환 등급 은 관계 가 없 으 며,작업 대기 열 에 있 는 비동기 작업 은 투과 선후 순서에 따라 배열 되 어 있다.
간단 한 모델 만 들 기:

 
다음 과 같이 이해 할 수 있다.

관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.
더 많은 자 바스 크 립 트 관련 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있다.,,,,,,,,,,
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기