async _pop()

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 };
    }