什么时候我需要使用process.nextTick在node.js中的最佳实践异步函数
When do I need to use process.nextTick in node.js for best practice async functions?
所以我一直在想我是否需要在process.nextTick
中包装需要时间的东西。
例如,假设有一个函数返回一个xml字符串转换为对象的承诺。
(我已经删除了require
和其他琐碎的可读性。你知道这里发生了什么。
// Return a promise for a javascript object
function parseXml(xml) {
var promise = q.defer();
var parser = new x2je.Parser(function(result, error) {
if (!error)
promise.resolve(result);
else
promise.reject(error);
});
parser.parseString(xml);
return promise.promise;
}
你看到一些人这样写函数:
// Return a promise for a javascript object
function parseXml(xml) {
var promise = q.defer();
process.nextTick(function(){
var parser = new x2je.Parser(function(result, error) {
if (!error)
promise.resolve(result);
else
promise.reject(error);
});
parser.parseString(xml);
});
return promise.promise;
}
我什么时候需要使用process.nextTick
进行最佳实践编码?
setTimeout(function(){//},0)也可以得到同样的结果;它只是把你的函数放在队列中,而不是堆栈中,主要是为了让你的代码不阻塞。
参考这些链接以获得更深入的理解
http://howtonode.org/understanding-process-next-tick https://www.youtube.com/watch?v=8aGhZQkoFbQ相关文章:
- 有条件更新d3.js力图中节点的最佳方法
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 什么's是连接供应商js文件的最佳方式
- 在node.js中编写单元测试的最佳方式是什么
- 节点:'最佳实践'使用其他js文件的js文件
- PHP和JS中表单验证的最佳方式
- ExtJS类的最佳实践最终导致了太多的.JS文件.性能怎么样
- Ember.js:接受的子组件和父组件之间通信的最佳实践
- 在企业应用程序框架中包含js/css文件的最佳实践是什么
- 展示纯js应用程序前端的最佳架构是什么
- 主干.js事件处理程序命名的最佳做法
- 在 ember.js 中自定义输入字段的最佳实践
- HTML + JS:设置文本区域内容样式的最佳方式
- 将参数传递到外部 JS 脚本的最佳方法
- 在下划线.js中扩展对象的最佳实践
- 成员函数的 JS 最佳实践
- 在主干中使用全局变量.js .最佳实践
- express.js - 最佳 POST JSON 架构验证器
- Ember.JS最佳实践:模型与控制器字段绑定
- Node.js最佳实践异常处理-异步/Await之后