我目前正在编写一个函数来解析一些传入的JSON数据并将其显示为图表。 为了做到这一点,我使用for循环并在这样的数组中填充JSON数据。
var allMsg = [];
async.each (jsonData.dataSet,
function (sensorItem, callback) {
for each item in array .... {
var msg1 = {};
msg1.req = msg.req;
msg1.res = msg.res;
msg1.payload = "some payload";
allMsg.push(msg1);
}
callback();
},
function(err) {
node.send([allMsg];
}
};
return;
}
以上示例仅发送第一个元素allMsg [0]。 我知道要处理异步操作你需要做node.send而不是返回msg,但是我不太确定应该在哪里做node.send 如果有人能提供帮助,那就太棒了......谢谢!
答案 0 :(得分:0)
在给出的示例中,您需要声明一个函数作为window.location.href = 'dashboard.php'
参数传递给callback
另一种选择是只发布每条消息,而不是将它们推送到each
数组。 e.g。
allMsg
但看起来您在一对async.each (jsonData.dataSet,
function (sensorItem, callback) {
for each item in array .... {
var msg1 = {};
msg1.req = msg.req;
msg1.res = msg.res;
msg1.payload = "some payload";
node.send(msg1);
}
},
function(err) {
//node.send([allMsg];
}
};
和http-in
节点(msg.res / msg.req)之间使用此函数节点。这不起作用,因为http-response
只会回复它收到的第一条消息,您不能以这种方式流式传输多条消息。您可以使用http-response
节点等待所有结果完成(如果需要)。