Javascript 等待回调完成Node.js

Javascript 等待回调完成Node.js,javascript,node.js,Javascript,Node.js,我的情况是这样的,我有一个这样的服务器,在里面我调用另一个回调函数,该函数获取多个值: var http = require('http'); var server = http.createServer(req,resp) { var finalVal = ""; consumer.on('message',function(message) { finalVal = message; console.log(finalVal);

我的情况是这样的,我有一个这样的服务器,在里面我调用另一个回调函数,该函数获取多个值:

var http = require('http'); 
var server = http.createServer(req,resp) {
     var finalVal = "";

     consumer.on('message',function(message) {
         finalVal = message;
         console.log(finalVal);
     });

     resp.end(finalVal);
});
我的finalVal应该显示它获取的所有多个值并将其作为响应发送,但问题是它只发送第一个值,而as console.log显示所有值。我确实明白,到consumer.on ends的回应做出承诺的时候。有人能帮我处理这个场景吗,因为我对Node.js很陌生?目前由于截止日期很长,我没有时间阅读有关回调的完整信息。但我会花时间去了解回调

编辑:这里是consumer.on多次呼叫,直到它从后端获取所有数据,我需要在最终响应中发送所有这些数据。我正在使用节点kafka来消费kafka消息。

必须有一个结束事件或类似的事件来告诉消费者已完成消息,您可以使用它

我不确定这里的消费者是什么,但在大多数情况下,我们使用类似于贝娄的东西

var finalVal = '';

consumer.on('message',function(message) {
     finalVal += message; // So on each message you will just update the final value
     console.log(finalVal);
 });

consumer.on('end',function(){ // And at the end send the response
     resp.end(finalVal);
});

分别向财务报告提交;就在console.log.I之后,它只显示第一个值。。其余的其他值将被忽略。但它会显示在控制台上。为什么要投否决票?请至少告诉我,以便我可以改进这个问题。这里的多值表示多次调用consumer.on,直到它获取所有数据。是否没有结束事件?什么是消费者?您还应该使用finalval+=message,因为您现在拥有的是覆盖您的变量。库中没有称为end的事件: