UNPKG

jcc_rpc

Version:
118 lines (117 loc) 3.1 kB
/// <reference types="node" /> import { EventEmitter as Event } from "events"; interface ISubscribeTask { /** * Register task * * @param {string} taskName * @param {(...args) => Promise<any>} task * @param {boolean} polling * @param {number} timer * @returns {ISubscribeTask} * @memberof ISubscribeTask */ register(taskName: string, task: (...args: any[]) => Promise<any>, polling: boolean, timer: number): ISubscribeTask; /** * Start task * * @param {string} taskName * @param {*} args * @returns {ISubscribeTask} * @memberof ISubscribeTask */ start(taskName: string, ...args: any[]): ISubscribeTask; /** * Stop polling * * @param {string} taskName * @returns {ISubscribeTask} * @memberof ISubscribeTask */ stopPolling(taskName: string): ISubscribeTask; /** * Stop all polling tasks * * @returns {ISubscribeTask} * @memberof ISubscribeTask */ stopAll(): ISubscribeTask; /** * Remove registered task * * @param {string} taskName * @returns {ISubscribeTask} * @memberof ISubscribeTask */ removeTask(taskName: string): ISubscribeTask; /** * Remove all registered tasks * * @returns {ISubscribeTask} * @memberof ISubscribeTask */ removeAll(): ISubscribeTask; } export default class SubscribeTask extends Event implements ISubscribeTask { private taskMap; private taskIdMap; constructor(); /** * Register task * * @param {string} taskName task name * @param {(...args) => Promise<any>} task * @param {boolean} [polling=true] whether polling * @param {number} [timer=5000] interval time * @returns {SubscribeTask} * @memberof SubscribeTask */ register(taskName: string, task: (...args: any[]) => Promise<any>, polling?: boolean, timer?: number): SubscribeTask; /** * Start task * * If polling is true when register, would polling excute the task. * * Emit event of task name after the task is finished. * * @param {string} taskName task name * @param {*} args * @returns {SubscribeTask} * @memberof SubscribeTask */ start(taskName: string, ...args: any[]): SubscribeTask; /** * Stop polling * * @param {string} taskName * @returns {SubscribeTask} * @memberof SubscribeTask */ stopPolling(taskName: string): SubscribeTask; /** * Stop all polling tasks * * @returns {SubscribeTask} * @memberof SubscribeTask */ stopAll(): SubscribeTask; /** * Remove registered task * * @param {string} taskName * @returns {SubscribeTask} * @memberof SubscribeTask */ removeTask(taskName: string): SubscribeTask; /** * Remove all registered tasks * * @returns {SubscribeTask} * @memberof SubscribeTask */ removeAll(): SubscribeTask; private polling; private getTask; private getTaskId; } export {};