From 51ca1e60af1ca89e6b5966825e6c0ed3707f4582 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Mon, 20 Jan 2025 19:55:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E7=BC=96=E8=BE=91=E5=99=A8?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E9=94=80=E6=AF=81=E5=90=8E=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E6=94=B6=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/initService.ts | 2 ++ packages/editor/src/services/dep.ts | 17 +++++++++++++++++ packages/editor/src/utils/idle-task.ts | 1 + 3 files changed, 20 insertions(+) diff --git a/packages/editor/src/initService.ts b/packages/editor/src/initService.ts index a932e7b3..4bffbdfb 100644 --- a/packages/editor/src/initService.ts +++ b/packages/editor/src/initService.ts @@ -45,6 +45,7 @@ export const initServiceState = ( codeBlockService, keybindingService, dataSourceService, + depService, }: Services, ) => { // 初始值变化,重新设置节点信息 @@ -203,6 +204,7 @@ export const initServiceState = ( componentListService.resetState(); codeBlockService.resetState(); keybindingService.reset(); + depService.reset(); }); }; diff --git a/packages/editor/src/services/dep.ts b/packages/editor/src/services/dep.ts index 47af5070..d78a229c 100644 --- a/packages/editor/src/services/dep.ts +++ b/packages/editor/src/services/dep.ts @@ -176,6 +176,23 @@ class Dep extends BaseService { return super.once(eventName, listener as any); } + public reset() { + idleTask.removeAllListeners(); + idleTask.clearTasks(); + + for (const type of Object.keys(this.watcher.getTargetsList())) { + this.removeTargets(type); + } + + this.set('collecting', false); + } + + public destroy() { + this.removeAllListeners(); + this.reset(); + this.removeAllPlugins(); + } + public emit(eventName: Name, ...args: Param) { return super.emit(eventName, ...args); } diff --git a/packages/editor/src/utils/idle-task.ts b/packages/editor/src/utils/idle-task.ts index 876b8e97..a1fd628a 100644 --- a/packages/editor/src/utils/idle-task.ts +++ b/packages/editor/src/utils/idle-task.ts @@ -54,6 +54,7 @@ export class IdleTask extends EventEmitter { this.hightLevelTaskList = []; this.taskList = []; + this.taskHandle = null; } public on(