Потребительское сообщение Kafka-узла Pu sh в массив - PullRequest
0 голосов
/ 28 января 2020

Я начал учиться 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 = []
};

Почему данные сообщения не помещаются в массив?

1 Ответ

0 голосов
/ 28 января 2020

Datas.push(message); происходит внутри слушателя, который является асинхронным, в то время как оператор консоли выполняется immeditaley. Вот почему это пустой массив. Вы можете либо зарегистрировать end слушатель, если таковой имеется, и сделать в нем консоль, либо переместить консоль в прослушиватель сообщений.

...