Node.js_node.js의 Process.nextTick 사용 예

WBOY
풀어 주다: 2016-05-16 15:52:58
원래의
1297명이 탐색했습니다.

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);
}
로그인 후 복사

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

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