9 마디 말 은 스 레 드 와 비동기 및 반전 함 수 를 쉽게 이해 합 니 다.
아홉 마디 말 은 스 레 드 와 비동기, 그리고 반전 함 수 를 쉽게 이해 할 수 있다.
문제.
JavaScript 에서 대부분의 코드 는 하나의 실행 을 동기 화 합 니 다. 만약 에 이때
click
사건 을 썼 다 면 사용자 가 이 click 를 촉발 하지 않 았 습 니 다. 동기 화 된 사상 에 따라 click 사건 뒤의 코드 는 실행 되 지 않 았 습 니 다. 이 사건 을 촉발 할 때 까지 문 제 를 던 졌 습 니 다. 우 리 는 이 사건 들 을 어떻게 처리 합 니까?자바 스 크 립 트 는 다 중 스 레 드 가 없다 는 것 을 알 아야 한다.(다 중 스 레 드 에 대해 서 는 제 글 을 볼 수 있 습 니 다)방법.
이때 가 바로 비동기 로 등장 할 때 이다.비동기 작업 에 대해 자바 스 크 립 트 는 직접 실행 하지 않 고 하나의 대기 열 로 밀어 넣 습 니 다. (대기 열 은 스 택 과 대기 열 을 볼 수 있 습 니 다) 대기 열 에 저 장 된 함 수 는 하나의 반전 함수 입 니 다.현재 실행 환경 이 실 행 된 후에 대기 열 에 있 는 리 셋 함 수 를 실행 합 니 다.
예시
예 를 들 어
setTimeout()
함수.function a(num) {
for (var i = 0; i < num; i++) {
(function(i) {
setTimeout(function() {
console.log("b:" + i);
}, 10);
})(i);
console.log("a:" + i);
}
}
a(5);
마지막 출력 은:
eventUtil.js:42 a:0 eventUtil.js:42 a:1 eventUtil.js:42 a:2 eventUtil.js:42 a:3 eventUtil.js:42 a:4 eventUtil.js:38 b:0 eventUtil.js:38 b:1 eventUtil.js:38 b:2 eventUtil.js:38 b:3 eventUtil.js:38 b:4
예 를 들 어 해석 하 다.
이 를 통 해 알 수 있 듯 이 먼저 실 행 된 것 은 42 줄 의 코드 이 고 그 다음 에 실 행 된 것 은 38 줄 의 코드 가 비동기 코드 이기 때문이다.
b
의 출력 은 0 - 4 에서 알 수 있 듯 이 이 비동기 코드 는 대기 열 에 저장 되 어 있 습 니 다. 이것 은 먼저 불 러 온 것 이기 때 문 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.