[英]Push to Azure queue overwriting message from Array?[node.JS]
我有一個包含一些對象的數組,我想將它們發送到 azure 隊列。 我有一個簡單的數組,其中包含一些數據和一個用於遍歷數組的每個元素並將其推送到隊列中的數組。 一切都很順利,但是當我看到隊列時,我只能找到數組的最后一個成員,而不是所有對象。
我的代碼如下所示:
module.exports = async function (context, myQueueItem) {
var tabdata = []
tabdata =(
{housecode:1,car: 2, familymbembers:5,status:"Error"},{housecode:2,car: 5, familymbembers:4,status:"normal"},{housecode:3,car: 2, familymbembers:4,status:"Error"})
//does some other stuff
for (let i = 0; i < tabData.length; i++) {
if(tabData[i].status == "Error"){
context.bindings.outputQueueError = (tabData[i]);
}
}
context.done();
}
如果我嘗試在 context.bindings.output 之后打印對象,我可以看到 for 和 if 工作正常(我打印了數組中的 0 和 2 object),但在隊列中我只能看到一個object,房屋代碼為 3。
有什么幫助嗎?
你的問題在於這行代碼
context.bindings.outputQueueError = (tabData[i]);
在循環的第一次迭代中,邏輯表達式為真,然后將該值分配給 context.bindings.outputQueueError。 然后,在最后一次迭代中,將該值分配給 context.bindings.outputQueueError。
看起來您需要為每個傳遞表達式的 object 發送到迭代塊內的 azure 隊列,或者推送到該 for 循環內的數組並將每個 object 發送到其他地方的隊列。
使用消息數組修復
module.exports = function(context) {
context.bindings.myQueueItem = ["message 1","message 2"];
context.done();
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.