栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Node.js中process.nextTick的正确用例是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Node.js中process.nextTick的正确用例是什么?

process.nextTick
将回调放入队列。此队列中的每个回调将在事件循环的下一个滴答的开始处执行。基本上,它用作清除调用堆栈的一种方法。当文档说像时
setTimeout
,意味着说像
setTimeout(function(){ ... }, 1)
在浏览器中使用。它具有相同的用例。

一个示例用例是,为需要绑定事件的某些对象创建一个构造函数。但是,您无法立即开始发出事件,因为实例化它的代码还没有时间绑定到事件。您的构造函数调用在调用堆栈中位于它们之上,并且如果您继续执行同步操作,它将保持这种状态。在这种情况下,您可以

process.nextTick
在继续进行任何操作之前使用“
a” 。它保证使用您的构造函数的人将有足够的时间绑定事件。

例:

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);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469195.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号