正如Delete Message文档中提到的,该函数需要Get Messages或Update Message操作popreceipt
返回的参数。
并且在更新消息操作之后,popreceipt
该消息的 改变。因此,如果您的代码片段如下所示:
queueSvc.getMessages('myqueue', function(error, result, response){
if(!error){
// Messages retreived
for(var index in result){
var message = result[0];
queueSvc.updateMessage('myqueue', message.messageid, message.popreceipt, 0, {messageText: 'new text'}, function(error, result, response){
if(!error){
// Message updated successfully
console.log('result: '+JSON.stringify(result));
console.log(message.popreceipt)
queueSvc.deleteMessage('myqueue', message.messageid, message.popreceipt, function(error, response){
if(!error){
console.log(response);
// Message deleted
}else{
console.log(error);
}
});
}else{
console.log(error);
}
});
}
}
});
您将出现您的问题,您可以在 cmdlet 中进行监控,我们发现 popreceipt
更新操作后发生了变化。
因此,如果您需要在更新操作后删除消息,则必须利用result
更新后新消息对象的对象。例如
queueSvc.deleteMessage('myqueue', result.messageid, result.popreceipt, function(error, response){
if(!error){
console.log(response);
// Message deleted
}else{
console.log(error);
}
});