@gby/destroyable 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Destroyable.d.ts +7 -7
- package/dist/Destroyable.d.ts.map +1 -1
- package/dist/DestroyableEventEmitter.d.ts +4 -4
- package/dist/DestroyableEventEmitter.d.ts.map +1 -1
- package/dist/{DestroyableEventTarget-3_XyRRfB.js → DestroyableEventTarget-CI_bGgU0.js} +23 -21
- package/dist/DestroyableEventTarget-NFP7x4Ni.cjs +1 -0
- package/dist/DestroyableEventTarget.d.ts +4 -4
- package/dist/DestroyableEventTarget.d.ts.map +1 -1
- package/dist/createDestroyableSubClass.d.ts +9 -7
- package/dist/createDestroyableSubClass.d.ts.map +1 -1
- package/dist/index-web.cjs +1 -1
- package/dist/index-web.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +7 -7
- package/package.json +1 -1
- package/dist/DestroyableEventTarget-B26KR0Ul.cjs +0 -1
package/dist/Destroyable.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export interface IDestroyable {
|
|
|
35
35
|
/**
|
|
36
36
|
* 添加销毁对象
|
|
37
37
|
* @param obj
|
|
38
|
-
* @param sync - 表示是否使用 `obj.
|
|
38
|
+
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
39
39
|
* @returns
|
|
40
40
|
*/
|
|
41
41
|
disposeObj<T extends IDestroyable>(obj: T, sync?: boolean): T;
|
|
@@ -60,17 +60,17 @@ export interface IDestroyable {
|
|
|
60
60
|
* @remarks
|
|
61
61
|
* 子类根据需要进行重载
|
|
62
62
|
*/
|
|
63
|
-
destroyThis():
|
|
64
|
-
/**
|
|
65
|
-
* 销毁
|
|
66
|
-
*/
|
|
67
|
-
destroy(): boolean;
|
|
63
|
+
destroyThis(): Promise<void> | void;
|
|
68
64
|
/**
|
|
69
65
|
* 异步销毁
|
|
70
66
|
* @remarks
|
|
71
67
|
* 会依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
72
68
|
*/
|
|
73
|
-
|
|
69
|
+
destroy(): Promise<boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* 销毁
|
|
72
|
+
*/
|
|
73
|
+
destroySync(): boolean;
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* 调用已销对象的时抛出错误
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Destroyable.d.ts","sourceRoot":"","sources":["../src/Destroyable.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAGtC;;GAEG;AACH,MAAM,WAAW,YAAY;IAEzB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAC,OAAO,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAC,OAAO,CAAC;IAG5B;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAE9C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,IAAI,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAE5D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAA;IAChE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAGrF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACjD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IASrE;;;;OAIG;IACH,WAAW,IAAG,
|
|
1
|
+
{"version":3,"file":"Destroyable.d.ts","sourceRoot":"","sources":["../src/Destroyable.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAGtC;;GAEG;AACH,MAAM,WAAW,YAAY;IAEzB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAC,OAAO,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAC,OAAO,CAAC;IAG5B;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAE9C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,IAAI,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAE5D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAA;IAChE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAGrF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACjD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IASrE;;;;OAIG;IACH,WAAW,IAAG,OAAO,CAAC,IAAI,CAAC,GAAC,IAAI,CAAC;IAKjC;;;;OAIG;IACH,OAAO,IAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7B;;OAEG;IACH,WAAW,IAAG,OAAO,CAAC;CAUzB;AAOD;;GAEG;AACH,wBAAgB,gBAAgB,SAE/B;AAKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,WASxC;AAKD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,WAYtD"}
|
|
@@ -40,7 +40,7 @@ export declare class DestroyableEventEmitter<EM extends EventMap<EM> = DefaultEv
|
|
|
40
40
|
/**
|
|
41
41
|
* 添加销毁对象
|
|
42
42
|
* @param obj
|
|
43
|
-
* @param sync - 表示是否使用 `obj.
|
|
43
|
+
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
44
44
|
* @returns
|
|
45
45
|
*/
|
|
46
46
|
disposeObj<T extends IDestroyable>(obj: T, sync?: boolean): T;
|
|
@@ -65,16 +65,16 @@ export declare class DestroyableEventEmitter<EM extends EventMap<EM> = DefaultEv
|
|
|
65
65
|
* @remarks
|
|
66
66
|
* 子类根据需要进行重载
|
|
67
67
|
*/
|
|
68
|
-
destroyThis(): void;
|
|
68
|
+
destroyThis(): Promise<void> | void;
|
|
69
69
|
/**
|
|
70
70
|
* 销毁
|
|
71
71
|
*/
|
|
72
|
-
|
|
72
|
+
destroySync(): boolean;
|
|
73
73
|
/**
|
|
74
74
|
* 异步销毁
|
|
75
75
|
* @remarks
|
|
76
76
|
* 会依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
77
77
|
*/
|
|
78
|
-
|
|
78
|
+
destroy(): Promise<boolean>;
|
|
79
79
|
}
|
|
80
80
|
//# sourceMappingURL=DestroyableEventEmitter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DestroyableEventEmitter.d.ts","sourceRoot":"","sources":["../src/DestroyableEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,CAAC;AAEtC;;GAEG;AACH,qBAAa,uBAAuB,CAAC,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAE,SAAQ,YAAY,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"DestroyableEventEmitter.d.ts","sourceRoot":"","sources":["../src/DestroyableEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,CAAC;AAEtC;;GAEG;AACH,qBAAa,uBAAuB,CAAC,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAE,SAAQ,YAAY,CAAC,EAAE,CAAE,YAAW,YAAY;IAE5H;;;;OAIG;IACH,QAAQ,SAAK;IAEb;;OAEG;IACH,IAAI,WAAW,YAEd;IACD,YAAY,UAAS;IAErB;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAM;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK7C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAMnD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;IAQ7D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IASnD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAClE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAStF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAgBpE;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAKnC;;OAEG;IACH,WAAW;IA6BX;;;;OAIG;IACG,OAAO;CA6BhB"}
|
|
@@ -63,14 +63,14 @@ function p(i) {
|
|
|
63
63
|
/**
|
|
64
64
|
* 添加销毁对象
|
|
65
65
|
* @param obj
|
|
66
|
-
* @param sync - 表示是否使用 `obj.
|
|
66
|
+
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
67
67
|
* @returns
|
|
68
68
|
*/
|
|
69
69
|
disposeObj(e, r) {
|
|
70
70
|
const n = r ? function() {
|
|
71
|
-
return e.
|
|
71
|
+
return e.destroySync();
|
|
72
72
|
} : function() {
|
|
73
|
-
return e.
|
|
73
|
+
return e.destroy();
|
|
74
74
|
};
|
|
75
75
|
return this.disposeFun(n), e.__destroyable_destroyer = n, e;
|
|
76
76
|
}
|
|
@@ -97,48 +97,50 @@ function p(i) {
|
|
|
97
97
|
destroyThis() {
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
|
-
*
|
|
100
|
+
* 异步销毁
|
|
101
|
+
* @remarks
|
|
102
|
+
* 会依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
101
103
|
*/
|
|
102
|
-
destroy() {
|
|
104
|
+
async destroy() {
|
|
103
105
|
if (!this.canDestroy) return this.isDestroyed;
|
|
104
106
|
let e = this._destroyers.length;
|
|
105
107
|
for (; --e >= 0; ) {
|
|
106
108
|
const r = this._destroyers[e];
|
|
107
109
|
try {
|
|
108
|
-
r();
|
|
110
|
+
const n = r();
|
|
111
|
+
n && n instanceof Promise && await n;
|
|
109
112
|
} catch (n) {
|
|
110
|
-
console.error("
|
|
113
|
+
console.error("销毁函数在异步销毁时出错", this, r, n);
|
|
111
114
|
}
|
|
112
115
|
}
|
|
113
116
|
this._destroyers.length = 0;
|
|
114
117
|
try {
|
|
115
|
-
this.destroyThis();
|
|
118
|
+
const r = this.destroyThis();
|
|
119
|
+
r && r instanceof Promise && await r;
|
|
116
120
|
} catch (r) {
|
|
117
121
|
console.error("destroyThis 在异步销毁时出错", this, r);
|
|
118
122
|
}
|
|
119
123
|
return d(this), !0;
|
|
120
124
|
}
|
|
121
125
|
/**
|
|
122
|
-
*
|
|
126
|
+
* 同步销毁
|
|
123
127
|
* @remarks
|
|
124
|
-
*
|
|
128
|
+
* 会依次执行销毁函数,但并不会等待每个异步销毁函数解决
|
|
125
129
|
*/
|
|
126
|
-
|
|
130
|
+
destroySync() {
|
|
127
131
|
if (!this.canDestroy) return this.isDestroyed;
|
|
128
132
|
let e = this._destroyers.length;
|
|
129
133
|
for (; --e >= 0; ) {
|
|
130
134
|
const r = this._destroyers[e];
|
|
131
135
|
try {
|
|
132
|
-
|
|
133
|
-
n && n instanceof Promise && await n;
|
|
136
|
+
r();
|
|
134
137
|
} catch (n) {
|
|
135
|
-
console.error("
|
|
138
|
+
console.error("销毁函数在同步销毁时出错", this, r, n);
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
141
|
this._destroyers.length = 0;
|
|
139
142
|
try {
|
|
140
|
-
|
|
141
|
-
r && r instanceof Promise && await r;
|
|
143
|
+
this.destroyThis();
|
|
142
144
|
} catch (r) {
|
|
143
145
|
console.error("destroyThis 在异步销毁时出错", this, r);
|
|
144
146
|
}
|
|
@@ -194,14 +196,14 @@ class _ extends a {
|
|
|
194
196
|
/**
|
|
195
197
|
* 添加销毁对象
|
|
196
198
|
* @param obj
|
|
197
|
-
* @param sync - 表示是否使用 `obj.
|
|
199
|
+
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
198
200
|
* @returns
|
|
199
201
|
*/
|
|
200
202
|
disposeObj(s, t) {
|
|
201
203
|
const e = t ? function() {
|
|
202
|
-
return s.
|
|
204
|
+
return s.destroySync();
|
|
203
205
|
} : function() {
|
|
204
|
-
return s.
|
|
206
|
+
return s.destroy();
|
|
205
207
|
};
|
|
206
208
|
return this.disposeFun(e), s.__destroyable_destroyer = e, s;
|
|
207
209
|
}
|
|
@@ -230,7 +232,7 @@ class _ extends a {
|
|
|
230
232
|
/**
|
|
231
233
|
* 销毁
|
|
232
234
|
*/
|
|
233
|
-
|
|
235
|
+
destroySync() {
|
|
234
236
|
if (!this.canDestroy) return this.isDestroyed;
|
|
235
237
|
let s = this._destroyers.length;
|
|
236
238
|
for (; --s >= 0; ) {
|
|
@@ -254,7 +256,7 @@ class _ extends a {
|
|
|
254
256
|
* @remarks
|
|
255
257
|
* 会依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
256
258
|
*/
|
|
257
|
-
async
|
|
259
|
+
async destroy() {
|
|
258
260
|
if (!this.canDestroy) return this.isDestroyed;
|
|
259
261
|
let s = this._destroyers.length;
|
|
260
262
|
for (; --s >= 0; ) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var h=Object.defineProperty;var u=(i,o,s)=>o in i?h(i,o,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[o]=s;var y=(i,o,s)=>u(i,typeof o!="symbol"?o+"":o,s);const a=require("@gby/event-bus");function d(){throw"已销毁"}function l(i){for(var o in i)typeof i[o]=="function"&&(i[o]=d);return i._isDestroyed=!0,!0}function c(i){for(var o in i)!(o in Destroyable.prototype)&&typeof i[o]=="function"&&(i[o]=d);return i._isDestroyed=!0,!0}function f(i){class o extends i{constructor(){super(...arguments);y(this,"refCount",0);y(this,"_isDestroyed",!1);y(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){const r=this._destroyers.indexOf(e);return this._destroyers.splice(r,1),e}disposeObj(e,r){const n=r?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(n),e.__destroyable_destroyer=n,e}cancelDisposeObj(e){const r=e.__destroyable_destroyer;return r&&this.cancelDisposeFun(r),e}dispose(e,r){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,r)}cancelDispose(e){return typeof e=="function"?this.cancelDisposeFun(e):this.cancelDisposeObj(e)}destroyThis(){}async destroy(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const r=this._destroyers[e];try{const n=r();n&&n instanceof Promise&&await n}catch(n){console.error("销毁函数在异步销毁时出错",this,r,n)}}this._destroyers.length=0;try{const r=this.destroyThis();r&&r instanceof Promise&&await r}catch(r){console.error("destroyThis 在异步销毁时出错",this,r)}return c(this),!0}destroySync(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const r=this._destroyers[e];try{r()}catch(n){console.error("销毁函数在同步销毁时出错",this,r,n)}}this._destroyers.length=0;try{this.destroyThis()}catch(r){console.error("destroyThis 在异步销毁时出错",this,r)}return c(this),!0}}return o}class D extends a.EventBus{constructor(){super(...arguments);y(this,"refCount",0);y(this,"_isDestroyed",!1);y(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(s){return this._destroyers.push(s),s}cancelDisposeFun(s){const t=this._destroyers.indexOf(s);return this._destroyers.splice(t,1),s}disposeObj(s,t){const e=t?function(){return s.destroySync()}:function(){return s.destroy()};return this.disposeFun(e),s.__destroyable_destroyer=e,s}cancelDisposeObj(s){const t=s.__destroyable_destroyer;return t&&this.cancelDisposeFun(t),s}dispose(s,t){return typeof s=="function"?this.disposeFun(s):this.disposeObj(s,t)}cancelDispose(s){return typeof s=="function"?this.cancelDisposeFun(s):this.cancelDisposeObj(s)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let s=this._destroyers.length;for(;--s>=0;){const t=this._destroyers[s];try{t()}catch(e){console.error("销毁函数在同步销毁时出错",this,t,e)}}this._destroyers.length=0;try{this.destroyThis()}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return c(this),!0}async destroy(){if(!this.canDestroy)return this.isDestroyed;let s=this._destroyers.length;for(;--s>=0;){const t=this._destroyers[s];try{const e=t();e&&e instanceof Promise&&await e}catch(e){console.error("销毁函数在异步销毁时出错",this,t,e)}}this._destroyers.length=0;try{const t=this.destroyThis();t&&t instanceof Promise&&await t}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return c(this),!0}}exports.DestroyableEventTarget=D;exports.createDestroyableSubClass=f;exports.destroyDestroyable=c;exports.destroyObject=l;exports.throwOnDestroyed=d;
|
|
@@ -38,7 +38,7 @@ export declare class DestroyableEventTarget<EM extends Record<string, any> = Rec
|
|
|
38
38
|
/**
|
|
39
39
|
* 添加销毁对象
|
|
40
40
|
* @param obj
|
|
41
|
-
* @param sync - 表示是否使用 `obj.
|
|
41
|
+
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
42
42
|
* @returns
|
|
43
43
|
*/
|
|
44
44
|
disposeObj<T extends IDestroyable>(obj: T, sync?: boolean): T;
|
|
@@ -63,16 +63,16 @@ export declare class DestroyableEventTarget<EM extends Record<string, any> = Rec
|
|
|
63
63
|
* @remarks
|
|
64
64
|
* 子类根据需要进行重载
|
|
65
65
|
*/
|
|
66
|
-
destroyThis(): void;
|
|
66
|
+
destroyThis(): Promise<void> | void;
|
|
67
67
|
/**
|
|
68
68
|
* 销毁
|
|
69
69
|
*/
|
|
70
|
-
|
|
70
|
+
destroySync(): boolean;
|
|
71
71
|
/**
|
|
72
72
|
* 异步销毁
|
|
73
73
|
* @remarks
|
|
74
74
|
* 会依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
75
75
|
*/
|
|
76
|
-
|
|
76
|
+
destroy(): Promise<boolean>;
|
|
77
77
|
}
|
|
78
78
|
//# sourceMappingURL=DestroyableEventTarget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DestroyableEventTarget.d.ts","sourceRoot":"","sources":["../src/DestroyableEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAGxC;;GAEG;AACH,qBAAa,sBAAsB,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,QAAQ,CAAC,EAAE,CAAE,YAAW,YAAY;IAElI;;;;OAIG;IACH,QAAQ,SAAK;IAEb;;OAEG;IACH,IAAI,WAAW,YAEd;IACD,YAAY,UAAS;IAErB;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAM;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK7C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAMnD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;IAQ7D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IASnD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAClE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAStF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"DestroyableEventTarget.d.ts","sourceRoot":"","sources":["../src/DestroyableEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAGxC;;GAEG;AACH,qBAAa,sBAAsB,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,QAAQ,CAAC,EAAE,CAAE,YAAW,YAAY;IAElI;;;;OAIG;IACH,QAAQ,SAAK;IAEb;;OAEG;IACH,IAAI,WAAW,YAEd;IACD,YAAY,UAAS;IAErB;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAM;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK7C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAMnD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;IAQ7D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IASnD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAClE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAStF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAapE;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAKnC;;OAEG;IACH,WAAW;IA6BX;;;;OAIG;IACG,OAAO;CA6BhB"}
|
|
@@ -42,7 +42,7 @@ export declare function createDestroyableSubClass<P extends new (...args: any) =
|
|
|
42
42
|
/**
|
|
43
43
|
* 添加销毁对象
|
|
44
44
|
* @param obj
|
|
45
|
-
* @param sync - 表示是否使用 `obj.
|
|
45
|
+
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
46
46
|
* @returns
|
|
47
47
|
*/
|
|
48
48
|
disposeObj<T extends IDestroyable>(obj: T, sync?: boolean): T;
|
|
@@ -67,17 +67,19 @@ export declare function createDestroyableSubClass<P extends new (...args: any) =
|
|
|
67
67
|
* @remarks
|
|
68
68
|
* 子类根据需要进行重载
|
|
69
69
|
*/
|
|
70
|
-
destroyThis(): void;
|
|
71
|
-
/**
|
|
72
|
-
* 销毁
|
|
73
|
-
*/
|
|
74
|
-
destroy(): boolean;
|
|
70
|
+
destroyThis(): Promise<void> | void;
|
|
75
71
|
/**
|
|
76
72
|
* 异步销毁
|
|
77
73
|
* @remarks
|
|
78
74
|
* 会依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
79
75
|
*/
|
|
80
|
-
|
|
76
|
+
destroy(): Promise<boolean>;
|
|
77
|
+
/**
|
|
78
|
+
* 同步销毁
|
|
79
|
+
* @remarks
|
|
80
|
+
* 会依次执行销毁函数,但并不会等待每个异步销毁函数解决
|
|
81
|
+
*/
|
|
82
|
+
destroySync(): boolean;
|
|
81
83
|
constructor: Function;
|
|
82
84
|
toString(): string;
|
|
83
85
|
toLocaleString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDestroyableSubClass.d.ts","sourceRoot":"","sources":["../src/createDestroyableSubClass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAC,YAAY,EAAE,MAAM,eAAe,CAAC;AAG/D;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC;kBAA9B,GAAG;QAQ7D;;;;WAIG;;QAGH;;WAEG;;;QAMH;;WAEG;;QAMH;;WAEG;qBACU,YAAY,EAAE;QAE3B;;;;WAIG;mBACQ,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QAK7C;;;;WAIG;yBACc,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QAMnD;;;;;WAKG;mBACQ,CAAC,SAAS,YAAY,OAAO,CAAC,SAAS,OAAO,GAAG,CAAC;QAQ7D;;;;WAIG;yBACc,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QASnD;;;WAGG;gBACK,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;gBAClC,CAAC,SAAS,YAAY,OAAO,CAAC,iBAAiB,OAAO,GAAG,CAAC;gBAC1D,CAAC,SAAS,YAAY,GAAG,YAAY,YAAY,CAAC,iBAAiB,OAAO,GAAG,CAAC;sBASxE,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;sBAClC,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;sBAClC,CAAC,SAAS,YAAY,GAAG,YAAY,YAAY,CAAC,GAAG,CAAC;QAcpE;;;;WAIG;;
|
|
1
|
+
{"version":3,"file":"createDestroyableSubClass.d.ts","sourceRoot":"","sources":["../src/createDestroyableSubClass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAC,YAAY,EAAE,MAAM,eAAe,CAAC;AAG/D;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC;kBAA9B,GAAG;QAQ7D;;;;WAIG;;QAGH;;WAEG;;;QAMH;;WAEG;;QAMH;;WAEG;qBACU,YAAY,EAAE;QAE3B;;;;WAIG;mBACQ,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QAK7C;;;;WAIG;yBACc,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QAMnD;;;;;WAKG;mBACQ,CAAC,SAAS,YAAY,OAAO,CAAC,SAAS,OAAO,GAAG,CAAC;QAQ7D;;;;WAIG;yBACc,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QASnD;;;WAGG;gBACK,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;gBAClC,CAAC,SAAS,YAAY,OAAO,CAAC,iBAAiB,OAAO,GAAG,CAAC;gBAC1D,CAAC,SAAS,YAAY,GAAG,YAAY,YAAY,CAAC,iBAAiB,OAAO,GAAG,CAAC;sBASxE,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;sBAClC,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;sBAClC,CAAC,SAAS,YAAY,GAAG,YAAY,YAAY,CAAC,GAAG,CAAC;QAcpE;;;;WAIG;uBACY,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;QAMnC;;;;WAIG;;QA8BH;;;;WAIG;;;;;;;;;;MAgCV;AAMD;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,WAAW,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,IAAI,UAAU,CAAC,OAAO,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC;AAE9I;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,WAAW,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC"}
|
package/dist/index-web.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./DestroyableEventTarget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./DestroyableEventTarget-NFP7x4Ni.cjs");exports.DestroyableEventTarget=e.DestroyableEventTarget;exports.createDestroyableSubClass=e.createDestroyableSubClass;exports.destroyDestroyable=e.destroyDestroyable;exports.destroyObject=e.destroyObject;exports.throwOnDestroyed=e.throwOnDestroyed;
|
package/dist/index-web.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var y=Object.defineProperty;var d=(i,r,e)=>r in i?y(i,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[r]=e;var n=(i,r,e)=>d(i,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./DestroyableEventTarget-
|
|
1
|
+
"use strict";var y=Object.defineProperty;var d=(i,r,e)=>r in i?y(i,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[r]=e;var n=(i,r,e)=>d(i,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./DestroyableEventTarget-NFP7x4Ni.cjs"),c=require("node:events");class h extends c.EventEmitter{constructor(){super(...arguments);n(this,"refCount",0);n(this,"_isDestroyed",!1);n(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){const t=this._destroyers.indexOf(e);return this._destroyers.splice(t,1),e}disposeObj(e,t){const s=t?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(s),e.__destroyable_destroyer=s,e}cancelDisposeObj(e){const t=e.__destroyable_destroyer;return t&&this.cancelDisposeFun(t),e}dispose(e,t){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,t)}cancelDispose(e){return typeof e=="function"?this.cancelDisposeFun(e):this.cancelDisposeObj(e)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const t=this._destroyers[e];try{t()}catch(s){console.error("销毁函数在同步销毁时出错",this,t,s)}}this._destroyers.length=0;try{this.destroyThis()}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return o.destroyDestroyable(this),!0}async destroy(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const t=this._destroyers[e];try{const s=t();s&&s instanceof Promise&&await s}catch(s){console.error("销毁函数在异步销毁时出错",this,t,s)}}this._destroyers.length=0;try{const t=this.destroyThis();t&&t instanceof Promise&&await t}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return o.destroyDestroyable(this),!0}}exports.DestroyableEventTarget=o.DestroyableEventTarget;exports.createDestroyableSubClass=o.createDestroyableSubClass;exports.destroyDestroyable=o.destroyDestroyable;exports.destroyObject=o.destroyObject;exports.throwOnDestroyed=o.throwOnDestroyed;exports.DestroyableEventEmitter=h;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var y = Object.defineProperty;
|
|
2
2
|
var c = (o, r, e) => r in o ? y(o, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[r] = e;
|
|
3
3
|
var i = (o, r, e) => c(o, typeof r != "symbol" ? r + "" : r, e);
|
|
4
|
-
import { a as n } from "./DestroyableEventTarget-
|
|
5
|
-
import { D as p, c as _, d as m, t as g } from "./DestroyableEventTarget-
|
|
4
|
+
import { a as n } from "./DestroyableEventTarget-CI_bGgU0.js";
|
|
5
|
+
import { D as p, c as _, d as m, t as g } from "./DestroyableEventTarget-CI_bGgU0.js";
|
|
6
6
|
import { EventEmitter as d } from "node:events";
|
|
7
7
|
class u extends d {
|
|
8
8
|
constructor() {
|
|
@@ -51,14 +51,14 @@ class u extends d {
|
|
|
51
51
|
/**
|
|
52
52
|
* 添加销毁对象
|
|
53
53
|
* @param obj
|
|
54
|
-
* @param sync - 表示是否使用 `obj.
|
|
54
|
+
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
55
55
|
* @returns
|
|
56
56
|
*/
|
|
57
57
|
disposeObj(e, s) {
|
|
58
58
|
const t = s ? function() {
|
|
59
|
-
return e.
|
|
59
|
+
return e.destroySync();
|
|
60
60
|
} : function() {
|
|
61
|
-
return e.
|
|
61
|
+
return e.destroy();
|
|
62
62
|
};
|
|
63
63
|
return this.disposeFun(t), e.__destroyable_destroyer = t, e;
|
|
64
64
|
}
|
|
@@ -87,7 +87,7 @@ class u extends d {
|
|
|
87
87
|
/**
|
|
88
88
|
* 销毁
|
|
89
89
|
*/
|
|
90
|
-
|
|
90
|
+
destroySync() {
|
|
91
91
|
if (!this.canDestroy) return this.isDestroyed;
|
|
92
92
|
let e = this._destroyers.length;
|
|
93
93
|
for (; --e >= 0; ) {
|
|
@@ -111,7 +111,7 @@ class u extends d {
|
|
|
111
111
|
* @remarks
|
|
112
112
|
* 会依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
113
113
|
*/
|
|
114
|
-
async
|
|
114
|
+
async destroy() {
|
|
115
115
|
if (!this.canDestroy) return this.isDestroyed;
|
|
116
116
|
let e = this._destroyers.length;
|
|
117
117
|
for (; --e >= 0; ) {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var h=Object.defineProperty;var u=(i,o,s)=>o in i?h(i,o,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[o]=s;var y=(i,o,s)=>u(i,typeof o!="symbol"?o+"":o,s);const a=require("@gby/event-bus");function d(){throw"已销毁"}function l(i){for(var o in i)typeof i[o]=="function"&&(i[o]=d);return i._isDestroyed=!0,!0}function c(i){for(var o in i)!(o in Destroyable.prototype)&&typeof i[o]=="function"&&(i[o]=d);return i._isDestroyed=!0,!0}function f(i){class o extends i{constructor(){super(...arguments);y(this,"refCount",0);y(this,"_isDestroyed",!1);y(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){const r=this._destroyers.indexOf(e);return this._destroyers.splice(r,1),e}disposeObj(e,r){const n=r?function(){return e.destroy()}:function(){return e.destroyAsync()};return this.disposeFun(n),e.__destroyable_destroyer=n,e}cancelDisposeObj(e){const r=e.__destroyable_destroyer;return r&&this.cancelDisposeFun(r),e}dispose(e,r){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,r)}cancelDispose(e){return typeof e=="function"?this.cancelDisposeFun(e):this.cancelDisposeObj(e)}destroyThis(){}destroy(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const r=this._destroyers[e];try{r()}catch(n){console.error("销毁函数在同步销毁时出错",this,r,n)}}this._destroyers.length=0;try{this.destroyThis()}catch(r){console.error("destroyThis 在异步销毁时出错",this,r)}return c(this),!0}async destroyAsync(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const r=this._destroyers[e];try{const n=r();n&&n instanceof Promise&&await n}catch(n){console.error("销毁函数在异步销毁时出错",this,r,n)}}this._destroyers.length=0;try{const r=this.destroyThis();r&&r instanceof Promise&&await r}catch(r){console.error("destroyThis 在异步销毁时出错",this,r)}return c(this),!0}}return o}class D extends a.EventBus{constructor(){super(...arguments);y(this,"refCount",0);y(this,"_isDestroyed",!1);y(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(s){return this._destroyers.push(s),s}cancelDisposeFun(s){const t=this._destroyers.indexOf(s);return this._destroyers.splice(t,1),s}disposeObj(s,t){const e=t?function(){return s.destroy()}:function(){return s.destroyAsync()};return this.disposeFun(e),s.__destroyable_destroyer=e,s}cancelDisposeObj(s){const t=s.__destroyable_destroyer;return t&&this.cancelDisposeFun(t),s}dispose(s,t){return typeof s=="function"?this.disposeFun(s):this.disposeObj(s,t)}cancelDispose(s){return typeof s=="function"?this.cancelDisposeFun(s):this.cancelDisposeObj(s)}destroyThis(){}destroy(){if(!this.canDestroy)return this.isDestroyed;let s=this._destroyers.length;for(;--s>=0;){const t=this._destroyers[s];try{t()}catch(e){console.error("销毁函数在同步销毁时出错",this,t,e)}}this._destroyers.length=0;try{this.destroyThis()}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return c(this),!0}async destroyAsync(){if(!this.canDestroy)return this.isDestroyed;let s=this._destroyers.length;for(;--s>=0;){const t=this._destroyers[s];try{const e=t();e&&e instanceof Promise&&await e}catch(e){console.error("销毁函数在异步销毁时出错",this,t,e)}}this._destroyers.length=0;try{const t=this.destroyThis();t&&t instanceof Promise&&await t}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return c(this),!0}}exports.DestroyableEventTarget=D;exports.createDestroyableSubClass=f;exports.destroyDestroyable=c;exports.destroyObject=l;exports.throwOnDestroyed=d;
|