龙空技术网

Node安全的操作异步接口

行家汇 169

前言:

现时看官们对“node 接口文档”大约比较看重,朋友们都想要学习一些“node 接口文档”的相关内容。那么小编在网摘上网罗了一些关于“node 接口文档””的相关文章,希望兄弟们能喜欢,大家快快来学习一下吧!

有时你想略微延迟一下操作。在传统的JavaScript中,或许通过setTimeout执行一个很小的延迟是可接受的。然而Node提供了一个更有效的方案,process.nextTick。想写一个方法返回一个EventEmitter的实例或者接收一个回调在有些时候调用一个异步的接口,但不是所有时候,来使用process.nextTick来包装一个同步操作。

process.nextTick方法允许你把一个回调放在下一次事件轮询队列的头上。这意味它可以用来延迟执行,其结果是它比使用setTimeout更有效率。

很难想象为什么这是有用的。例子展示了返回一个EventEmitter实例的方法。这个想法是提供一个基于事件的接口允许调用者订阅这个事件在内部执行异步方法。错误地通过事件触发异步方法

这是一个在异步回调外边触发的事件。运行这个例子将不会在最后触发success事件。为什么呢?这是因为这个事件在监听器订阅之前就已经触发了。通常,一个事件会在一个异步的操作中触发,但有时候也会提早触发事件,比如在验证入参的时候发现有错误,那么error事件将被触发。要纠正这个小错误,可以把这段代码包裹进process.nextTick中。下面的例子返回一个EventEmitter实例的方法,并在这个方法中触发了一个事件。

这个事件现在会在监听器准备好后被触发。Node在文档中建议,接口要么是同步的,要么是异步的,这表示如果你有一个方法接受一个回调,并可能异步地调用它,那么你也应该在同步的情况下通过process.nextTick来执行它,这样可以确保执行的顺序性。

标签: #node 接口文档