添加回调到事件

时间:2014-06-25 11:36:49

标签: 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 = 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)
})

每次发出相同类型的事件时,它都会进行回调吗? 这会让性能受损吗?

1 个答案:

答案 0 :(得分:1)

你问了几个问题,让我试着按顺序回答。

  

将事件回调添加好吗?

当然,如果你想在一个事件之后调用一个函数,为什么不呢?

  

每次发出相同类型的事件时,它都会进行回调吗?

编写文字的方式,只有在cb

时才会调用request.type === data.type
  

这是否会影响性能?

这取决于。

通过添加一个有条件地调用的函数的参数,在函数未被调用的情况下,您的性​​能确实不会有任何明显差异。否则,它取决于回调函数的性能。

在任何具有合理回调函数的情况下,我都不认为它会导致性能问题。