Node.js의 Process.nextTick 사용 예

高洛峰
풀어 주다: 2016-12-26 09:16:30
원래의
1528명이 탐색했습니다.

process.nextTick에 대한 호출을 처음 어디서 봤는지 기억이 나지 않습니다. 아, 공식 nodejs 프로세스 문서에서 봤어야 했는데. 그 당시에는 이것이 무엇을 위한 것인지 이해하지 못했습니다. 우리는 이미 setTimeout을 가지고 있었는데 이 기능이 왜 필요한 걸까요? 그리고 근본적으로 말하면, 이 기능은 무엇을 합니까? setTimeout과 setTimeout의 차이점은 무엇입니까?

Stackoverflow에 내 문제를 기본적으로 설명하는 매우 좋은 게시물이 있습니다. 여기에 링크를 첨부하고 그 안에 예를 제공합니다.

stackoverflow.com >> Node.js의 process.nextTick 사용 사례?

var MyConstructor = function() {
 ...
 process.nextTick(function() {
  self._continue();
 });
};
  
MyConstructor.prototype.__proto__ = EventEmitter.prototype;
  
MyConstructor.prototype._continue = function() {
 // without the process.nextTick
 // these events would be emitted immediately
 // with no listeners. they would be lost.
 this.emit('data', 'hello');
 this.emit('data', 'world');
 this.emit('end');
};
  
function(req, res, next) {
 var c = new MyConstructor(...);
 c.on('data', function(data) {
  console.log(data);
 });
 c.on('end', next);
}
로그인 후 복사

간단히 말하면 비동기 모델로 인해 일부 코드는 필요한 조건이 완료되기 전에 실행될 수 있으므로 전제 조건이 필요한 이러한 코드를 넣습니다. 콜백 함수를 만들고 다음 이벤트 루프의 최상위 수준에 배치합니다. 그러면 이 코드는 즉시 실행되지 않고 다음 이벤트 라운드가 시작될 때까지 기다렸다가 시작된 후에 실행됩니다.

Node.js의 process.nextTick 사용 예와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!