【发布时间】:2014-11-13 18:09:40
【问题描述】:
我有一个调用ajax 的代码,它有一个callback。有没有办法可以用event emitter 替换callback。
下面是我的code。
var _getPoll = function(params){
var url = "http://localhost/poll"
console.log(url);
request({
headers: {
accept: 'application/json'
},
uri: url,
method: 'GET'
}, function(err, response, body){
body = JSON.parse(body);
console.log(body);
})
}
是否可以将回调替换为如下所示的 EventEmitter。
function(err, response, body){
body = JSON.parse(body);
console.log(body);
}
替换
this.emit('jsonResponse', err, response, body);
【问题讨论】:
-
我很好奇。不使用回调有什么好处?
-
@KJPrice:下一个回调总是很痛苦......这就是原因......
-
我不明白这个问题。 EventEmitter 是一个系统,可让您在事件发生时分配回调以触发。
-
...鉴于底部的示例代码,您仍在使用回调函数。那么为什么不给它一个名字,并使用命名函数呢?所以你有
function foobar(err, response, body){,然后把foobar放在当前匿名函数的位置。或者您可以让_getPoll将其作为参数或params之一接收。
标签: javascript node.js events