如何在消息事件之外使用消息数据?

时间:2019-07-16 04:54:09

标签: node.js asynchronous

  client.on('message ',function(message){
       console.log(message)
    });

在上面的异步代码中,我如何在消息事件之外使用消息数据?

1 个答案:

答案 0 :(得分:0)

通常,您不在该回调之外使用它。您可以在该回调或从该回调中调用的函数中放入想要使用该消息的任何代码。

由于client.on('message', ...)是事件驱动的,因此您不知道它何时会发生。因此,如果您将数据存储在其他地方,并希望将来有一些代码可以使用它,则其余代码将无法知道数据现在在那里并且有效。

因此,无论什么代码想要将该消息放入该回调或从该回调调用的函数中,都需要放置。常用的模型是在到达回调时处理实时数据,或者调用某个函数将数据“推送”到其他函数以便可以处理数据。

在某些(通常很少见)的情况下,您会收集数据,然后将来某个事件将处理该数据,但是我想这不是您在这里所做的。如果是这样,则只需将数据添加到更高范围的某个集合中即可。

如果您向我们提供了有关实际问题的更多详细信息,那么我们可能会针对如何解决该特定问题的建议而更加具体。既然您的问题已经写完,这是一个没有具体细节的通用问题,因此我们所能做的就是提供没有具体建议或细节的通用答案。

由于您似乎是新来的,所以这里的新人们常常倾向于认为他们应该使用自己编写的代码(伪代码)以通用的方式编写问题。通常这是一个糟糕的选择。如果您向我们展示您的实际问题和实际代码,我们可以为您提供针对您确切问题的深入特定解决方案和代码,并且我们可以为您提供您甚至不知道要问的解决方案或建议。如果您显示出具有实际问题的真实代码,而不是仅仅由stackoverflow组成的通用版本,您将获得更好的答案。