/** * 谁创建 谁销毁,注意是否存在销毁时序(例如: A对象不能在B对象销毁前销毁) * 在创建的地方销毁 */ export declare class Destroyable { private _destroyed; private _callbacksForDestroy; readonly destroyed: boolean; /** * 当前对象是否可用 */ readonly usable: boolean; /** * 注册对象销毁时的回调函数 * @param callback 回调函数 * @param order 调用顺序 order小的先执行,默认值为1 */ protected onDestroy(callback: () => void, order?: number): void; /** * 若当前对象没被销毁,则执行销毁逻辑。 * 1、对事件处理函数进行排序; * 2、按顺序执行事件处理函数(捕获每个事件处理函数的异常,确保后续的能够被执行); * 3、清空事件处理函数数组; * 4、将对象置为已销毁; */ destroy(): void; } export interface IDestroyable { destroyed: boolean; usable: boolean; destroy(): any; }