@skyway-sdk/common
Version:
The official Next Generation JavaScript SDK for SkyWay
54 lines • 1.78 kB
TypeScript
export declare class Event<T extends any> {
private _onSetListener;
private _stack;
private _eventIndex;
/**@internal */
constructor(_onSetListener?: () => void);
/**@internal */
emit: (arg: T) => void;
/**@internal */
removeAllListeners: () => void;
/**@internal */
pipe: (event: Event<T>) => {
removeListener: () => void;
disposer: (disposer: EventDisposer) => void;
};
/**
* イベントが起きた時に実行する関数を登録する。
* 戻り値として関数の登録を解除する関数が帰ってくる
*/
add: (callback: (args: T) => void) => {
removeListener: () => void;
disposer: (disposer: EventDisposer) => void;
};
/**イベントが起きた時に一度だけ実行される関数を登録する */
once: (callback: (arg: T) => void) => {
removeListener: () => void;
disposer: (disposer: EventDisposer) => void;
};
/**
* イベントが起きた時に Promise が resolve される
* @param timeLimit ms
*/
asPromise: (timeLimit?: number) => Promise<T>;
/**
* イベントが起きた時に実行される boolean を返す関数を登録する。
* 登録した関数が true を返した時に Promise が resolve される
* */
watch: (callback: (arg: T) => boolean | undefined | null, timeLimit?: number) => Promise<T>;
/**@internal */
get length(): number;
}
/**@internal */
export declare class Events {
events: Event<any>[];
make<T extends any>(): Event<T>;
dispose(): void;
}
/**@internal */
export declare class EventDisposer {
private _disposer;
push(disposer: () => void): void;
dispose(): void;
}
//# sourceMappingURL=event.d.ts.map