UNPKG

rocketmq-client-nodejs

Version:
53 lines 3.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConsumeService = void 0; const ConsumeResult_1 = require("./ConsumeResult"); const ConsumeTask_1 = require("./ConsumeTask"); class ConsumeService { clientId; #messageListener; #aborted = false; #pendingTimers = new Set(); constructor(clientId, messageListener) { this.clientId = clientId; this.#messageListener = messageListener; } async consumeMessage(messageView, delay = 0) { if (this.#aborted) { return ConsumeResult_1.ConsumeResult.FAILURE; } const task = new ConsumeTask_1.ConsumeTask(this.clientId, this.#messageListener, messageView); if (delay <= 0) { return this.#executeTask(task); } return new Promise(resolve => { const timer = setTimeout(async () => { this.#pendingTimers.delete(timer); if (this.#aborted) { resolve(ConsumeResult_1.ConsumeResult.FAILURE); return; } const result = await this.#executeTask(task); resolve(result); }, delay); this.#pendingTimers.add(timer); }); } async #executeTask(task) { try { return await task.call(); } catch (error) { return ConsumeResult_1.ConsumeResult.FAILURE; } } abort() { this.#aborted = true; for (const timer of this.#pendingTimers) { clearTimeout(timer); } this.#pendingTimers.clear(); } } exports.ConsumeService = ConsumeService; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3VtZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3VtZXIvQ29uc3VtZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLG1EQUFnRDtBQUNoRCwrQ0FBNEM7QUFJNUMsTUFBc0IsY0FBYztJQUNmLFFBQVEsQ0FBUztJQUMzQixnQkFBZ0IsQ0FBa0I7SUFDM0MsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixjQUFjLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFaEQsWUFBWSxRQUFnQixFQUFFLGVBQWdDO1FBQzVELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7SUFDMUMsQ0FBQztJQUlELEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBd0IsRUFBRSxLQUFLLEdBQUcsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPLDZCQUFhLENBQUMsT0FBTyxDQUFDO1FBQy9CLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDaEYsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0IsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xCLE9BQU8sQ0FBQyw2QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMvQixPQUFPO2dCQUNULENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFpQjtRQUNsQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyw2QkFBYSxDQUFDLE9BQU8sQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBakRELHdDQWlEQyJ9