添加回调事件可以吗?像这样吗?
Client.prototype.send = function(data, cb) {
// convert json to string
data = JSON.stringify(data)
this.client.write(data)
// wait for the response of this request
this.client.on('data', function(data) {
var request = JSON.parse(data)
// return response as callback
if (request.type === data.type) {
cb(request)
}
})
}
然后调用如下:
// send request and wait for reply
client.send(data, function(response) {
// do stuff to reply/response
// this executes +1 times for every sent request should only do 1 request 1 response
console.log(response)
})
是否每次发出相同类型的事件时都执行回调?
这会影响性能吗?
你问了几个问题,让我试着按顺序回答。
向事件添加回调可以吗?
当然,如果你想在事件之后调用一个函数,为什么不呢?
是否每次发出相同类型的事件时都执行回调?
你写的方式,cb
只会在request.type === data.type
这会影响性能吗?
,视情况而定。
通过添加一个参数,该参数是一个有条件调用的函数,在函数没有被调用的情况下,您真的不会有任何明显的性能差异。否则,它取决于回调函数的性能。
在任何一种情况下,一个合理的回调函数,我不希望它是一个性能问题的原因。