我的情况是这样的,我有一个像这样的服务器,我正在调用另一个回调函数,它获取多个值:
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应该显示它获取的所有多个值并将其作为响应发送,但问题是它只发送第一个值,而console.log显示所有值。我确实知道,当消费者结束时,响应将会提交。有人可以帮助我如何处理这种情况,因为我对Node.js很新吗?目前由于时间紧迫,我没有时间阅读有关回调的完整信息。但有条不紊地我会花时间去了解回调。
编辑:此处consumer.on
多次调用,直到从后端获取所有数据,我需要在最终响应中发送所有这些数据。我正在使用node-kafka
来消费kafka消息。
答案 0 :(得分:0)
必须有一个end
事件或类似事件告诉consumer
已完成消息,您可以使用
我不确定这里的消费者是什么,但在大多数情况下,我们会选择像bellow
这样的东西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);
});