javascript - Kafka 节点消费者消息推送到数组
问题描述
我已经开始学习javascript了。
我有一个示例代码:
Consumer = kafka.Consumer,
client = new kafka.KafkaClient();
module.exports = topic => {
consumer = new Consumer(client, [{ topic: topic, partition: 0 }], {
autoCommit: false
});
var Datas = [];
consumer.on("message", function(message) {
Datas.push(message);
});
console.log(Datas); //return = []
};
为什么消息数据没有推送到数组?
解决方案
Datas.push(message);
正在异步的侦听器内部发生,而控制台语句立即执行。这就是为什么它是空数组。您可以注册end
侦听器(如果有)并在其中执行控制台或将控制台移动到 on 消息侦听器中。
推荐阅读
- asynchronous - 如何在颤振应用程序中显示 5 分钟不可停止的计时器?
- switch-statement - 我的处理程序工作不顺畅。我该如何解决?
- bash - Bash“最新目录”的工作方式与 CL 与 Script 不同
- ubuntu - error in bison compilation, warning: implicit declaration of function 'yylex' and 'yyerror'
- categorical-data - Add Color to classes in scatterplot matrix (pairs)
- json - 如何在 Terraform 的 ARM 模板中使用 custom_data 参数?
- python - 如何使用 rfc822msgid 搜索电子邮件:
- tabs - Flutter:动态添加选项卡并使用 AutomaticKeepAliveClientMixin 保持状态
- navigation - 准备不会被调用 segue (Swift 4.2)
- angular - Angular 和 Laravel CORS 访问控制允许来源问题