import { ILoadingTask } from "./LoadingMgr"; export class LoadTaskMgr { private readonly tasks = new Map ILoadingTask>(); /** * 初始化任务管理器 */ public init(task: Record ILoadingTask>) { // 注册所有任务 Object.entries(task).forEach(([key, creator]) => { this.registerTask(key, creator); }); } /** * 注册单个任务 */ private registerTask(key: string, creator: () => ILoadingTask) { this.tasks.set(key, creator); } /** * 获取任务 */ public getTask(key: string): ILoadingTask { const creator = this.tasks.get(key); return creator ? creator() : null; } /** * 获取所有任务 */ public getAllTasks(): ILoadingTask[] { return Array.from(this.tasks.values()).map(creator => creator()); } }