node.js - 如何在消息事件之外使用消息数据?
问题描述
client.on('message ',function(message){
console.log(message)
});
在上面的异步代码中,我如何在消息事件之外使用消息数据?
解决方案
通常,您不会在该回调之外使用它。您将想要使用该消息的任何代码放入该回调或您从该回调调用的函数中。
因为client.on('message', ...)
是事件驱动的,所以你不知道它什么时候会发生。因此,如果您将数据存储在其他地方并期望将来有代码使用它,那么您的其余代码就无法知道数据现在在那里并且有效。
因此,任何代码想要该消息都需要放入此回调或您从此回调调用的函数中。通常的模型是,当数据到达时,您在此回调中实时处理数据,或者您调用某个函数将数据“推送”到其他函数,以便它可以处理数据。
在某些(通常很少见)情况下,您会收集数据,然后某些未来事件将处理数据,但我猜这不是您在这里所做的。如果是,那么您只需将此数据添加到某个更高范围的某个集合中。
如果您向我们提供有关您的实际问题的更多细节,我们可以更具体地提供有关如何解决该特定问题的建议。由于您的问题是现在写的,这是一个没有具体细节的通用问题,所以我们所能做的就是提供一个没有具体建议或细节的通用答案。
因为看起来你是新来的,所以这里的新人通常倾向于认为他们应该用他们编写的代码(伪代码)以通用的方式编写他们的问题。这通常是一个糟糕的选择。如果您向我们展示您的真实问题和真实代码,我们可以为您提供针对您的确切问题的深入的具体解决方案和代码,我们可以为您提供您甚至不知道要询问的解决方案或建议。如果你用你真正的问题展示你的真实代码,而不是你为 stackoverflow 编写的通用版本,你会得到更好的答案。
推荐阅读
- apache - Htaccess - 一个文件中的多个规则
- javascript - 断言正确时,TestCafe 触发了“断言错误”
- c - 使用具有不同优化的 gcc 时出现奇怪的反编译
- javascript - 如何使用 jQuery 将现有表单附加到选择表单字段
- php - 组内 Reapeter 中的 ACF 图像不起作用
- python - Numpy:从数组中获取“滚动”矩阵的最 Pythonic 方式是什么?
- sql - 如何在不使用“case when”的情况下对数据集进行分类
- c++ - 尽管调用者期望完全相同的类型,但从 std::function 类型传递变量失败
- android - 使用多个 viewholders 处理几个laytous
- python - 如何在python中存储函数的值?