in packages/azure-kusto-ingest/src/statusQ.ts [111:137]
async _pop(
qs: QueueDetails[],
n: number,
options: PopParams | null,
): Promise<{ result: Message[] & { nonEmptyQs?: QueueDetails[] }; nonEmptyQs: any[]; done: boolean }> {
const nonEmptyQs: any[] = [];
const result = [];
for (const q of qs) {
const response = await q.service.receiveMessages({ numberOfMessages: n });
const messages = response.receivedMessageItems;
for (const m of messages) {
if (m && Object.keys(m).length > 0) {
result.push(options && options.raw ? m : this.deserializeMessage(m));
if (!(options && !options.remove)) {
await q.service.deleteMessage(m.messageId, m.popReceipt);
}
if (result.length === n) {
return { done: true, nonEmptyQs, result };
}
}
}
}
return { done: nonEmptyQs.length === 0, nonEmptyQs, result };
}