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를 넣습니다. 고리. 그러면 이 코드는 즉시 실행되지 않고 다음 이벤트 라운드가 시작될 때까지 기다렸다가 시작된 후에 실행됩니다.