Javascript 向事件添加回调

Javascript 向事件添加回调,javascript,node.js,callback,event-handling,Javascript,Node.js,Callback,Event Handling,向事件添加回调可以吗?像这样 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 = JS

向事件添加回调可以吗?像这样

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

这会影响性能吗

那要看情况

只要添加一个参数,它是一个有条件地被调用的函数,在函数没有被调用的情况下,您就不会有任何明显的性能差异。否则,这取决于回调函数的性能


在任何一种情况下,如果使用合理的回调函数,我都不会认为这是性能问题的原因。

实际上发生了一些事情。每次我让事情发生。它执行回调+1次。如果我做了10次。它执行10次。我只希望它做一个请求。某种请求/响应方式。我不清楚您希望发生什么以及正在发生什么。从我所能收集到的信息来看,您想要更多地控制函数的运行时间吗?与此相关的问题:。我将此标记为已回答,因为它确实回答了我的问题。