UNPKG

node-nim

Version:

NetEase IM nodejs wrapper based on NetEase IM C++ SDK

148 lines 4.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.V2NIMChatroomQueueService = void 0; const eventemitter3_1 = require("eventemitter3"); const loader_1 = __importDefault(require("../loader")); class V2NIMChatroomQueueService extends eventemitter3_1.EventEmitter { constructor(instanceId) { super(); this.instance = new loader_1.default.V2NIMChatroomQueueService({ emit: this.emit.bind(this) }, instanceId); } /** * @brief 初始化队列 * @param size 初始化队列的长度,长度限制:0~1000 * @returns Promise<void> * @example * ```javascript * await chatroomQueueService.queueInit(100) * ``` */ queueInit(size) { return new Promise((resolve, reject) => { this.instance.queueInit(size, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 清空队列,仅管理员/创建者可以操作 * @returns Promise<void> * @example * ```javascript * await chatroomQueueService.queueDrop() * ``` */ queueDrop() { return new Promise((resolve, reject) => { this.instance.queueDrop(() => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 聊天室队列新增或更新元素 * @param params 新增或更新元素参数 * @returns Promise<void> * @example * ```javascript * await chatroomQueueService.queueOffer({ * elementKey: 'your element key', * elementValue: 'your element value' * }) * ``` */ queueOffer(params) { return new Promise((resolve, reject) => { this.instance.queueOffer(params, () => { resolve(); }, (error) => { reject(error); }); }); } /** * @brief 取出头元素或者指定的元素 * @param elementKey 指定的元素 key * @returns Promise<V2NIMChatroomQueueElement> * @example * ```javascript * const element = await chatroomQueueService.queuePoll('your element key') * ``` */ queuePoll(elementKey) { return new Promise((resolve, reject) => { this.instance.queuePoll(elementKey, (element) => { resolve(element); }, (error) => { reject(error); }); }); } /** * @brief 查看队头元素, 不删除 * @returns Promise<V2NIMChatroomQueueElement> * @example * ```javascript * const element = await chatroomQueueService.queuePeek() * ``` */ queuePeek() { return new Promise((resolve, reject) => { this.instance.queuePeek((element) => { resolve(element); }, (error) => { reject(error); }); }); } /** * @brief 排序列出所有元素 * @return Promise<Array<V2NIMChatroomQueueElement>> * @example * ```javascript * const elements = await chatroomQueueService.queueList() * console.log(elements) * ``` */ queueList() { return new Promise((resolve, reject) => { this.instance.queueList((elements) => { resolve(elements); }, (error) => { reject(error); }); }); } /** * @brief 批量更新队列元素 * @param elements 需要更新的元素列表 * @param notificationEnabled 是否发送通知 * @param notificationExtension 通知扩展字段 * @return Promise<string[]> * @example * ```javascript * const elementKeys = await chatroomQueueService.queueBatchUpdate([{ * key: 'your element key', * value: 'your element value' * }], true, 'your notification extension') * ``` */ queueBatchUpdate(elements, notificationEnabled, notificationExtension) { return new Promise((resolve, reject) => { this.instance.queueBatchUpdate(elements, notificationEnabled, notificationExtension, (elementKeys) => { resolve(elementKeys); }, (error) => { reject(error); }); }); } } exports.V2NIMChatroomQueueService = V2NIMChatroomQueueService; //# sourceMappingURL=v2_nim_chatroom_queue_service.js.map