node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
148 lines • 4.63 kB
JavaScript
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
;