@idlebox/common 1.3.3 → 1.3.4
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/docs/package-public.d.ts +4 -3
- package/lib/_export_all_in_one_index.cjs.map +10 -1
- package/lib/array/arrayDiff.cjs.map +10 -1
- package/lib/array/arraySame.cjs.map +10 -1
- package/lib/array/arrayUnique.cjs.map +10 -1
- package/lib/array/normalizeArray.cjs.map +10 -1
- package/lib/array/sortAlpha.cjs.map +10 -1
- package/lib/date/consts.cjs.map +10 -1
- package/lib/date/isInvalid.cjs.map +10 -1
- package/lib/date/sibling.cjs.map +10 -1
- package/lib/date/timeString.cjs.map +10 -1
- package/lib/date/unix.cjs.map +10 -1
- package/lib/debugging/tryInspect.cjs.map +10 -1
- package/lib/error/convertUnknown.cjs.map +10 -1
- package/lib/error/getFrame.cjs.map +10 -1
- package/lib/function/asyncCallbackList.cjs.map +10 -1
- package/lib/function/callbackList.cjs +21 -6
- package/lib/function/callbackList.cjs.map +10 -1
- package/lib/function/callbackList.js +16 -6
- package/lib/function/callbackList.js.map +1 -1
- package/lib/function/delayCallbackList.cjs.map +10 -1
- package/lib/function/functionName.cjs.map +10 -1
- package/lib/lifecycle/dispose/bridges/rxjs.cjs.map +10 -1
- package/lib/lifecycle/dispose/disposableEvent.cjs.map +10 -1
- package/lib/lifecycle/dispose/disposedError.cjs.map +10 -1
- package/lib/lifecycle/dispose/lifecycle.async.cjs.map +10 -1
- package/lib/lifecycle/dispose/lifecycle.cjs.map +10 -1
- package/lib/lifecycle/dispose/lifecycle.global.cjs.map +10 -1
- package/lib/lifecycle/dispose/lifecycle.sync.cjs.map +10 -1
- package/lib/lifecycle/event/event.cjs.map +10 -1
- package/lib/lifecycle/promise/cancel.cjs.map +10 -1
- package/lib/lifecycle/promise/cancellationToken/driver.browser.cjs.map +10 -1
- package/lib/lifecycle/promise/cancellationToken/driver.common.cjs.map +10 -1
- package/lib/lifecycle/promise/cancellationToken/source.cjs.map +10 -1
- package/lib/lifecycle/promise/deferredPromise.cjs.map +10 -1
- package/lib/lifecycle/timeout/timeout.cjs.map +10 -1
- package/lib/lifecycle/timeout/timeoutError.cjs.map +10 -1
- package/lib/log/logger.cjs.map +10 -1
- package/lib/mapSet/customSet.cjs.map +10 -1
- package/lib/mapSet/extendMap.cjs.map +10 -1
- package/lib/misc/assertNotNull.cjs.map +10 -1
- package/lib/object/definePublicConstant.cjs.map +10 -1
- package/lib/object/initOnRead.cjs.map +10 -1
- package/lib/object/objectPath.cjs.map +10 -1
- package/lib/object/objectSame.cjs.map +10 -1
- package/lib/path/isAbsolute.cjs.map +10 -1
- package/lib/path/normalizePath.cjs.map +10 -1
- package/lib/path/pathArray.cjs.map +10 -1
- package/lib/platform/globalObject.cjs.map +10 -1
- package/lib/platform/globalSingleton.cjs.map +10 -1
- package/lib/platform/globalSymbol.cjs.map +10 -1
- package/lib/platform/os.cjs.map +10 -1
- package/lib/promise/awaitIterator.cjs.map +10 -1
- package/lib/promise/finishAllPromise.cjs.map +10 -1
- package/lib/promise/promiseBool.cjs.map +10 -1
- package/lib/promise/promisePool.cjs.map +10 -1
- package/lib/promise/timeoutPromisePool.cjs.map +10 -1
- package/lib/reflection/classes/hookClass.cjs.map +10 -1
- package/lib/reflection/classes/singleton.cjs.map +10 -1
- package/lib/reflection/methods/bind.cjs.map +10 -1
- package/lib/reflection/methods/initOnRead.cjs.map +10 -1
- package/lib/reflection/methods/memorize.cjs.map +10 -1
- package/lib/string/castCase.cjs.map +10 -1
- package/lib/string/escapeRegexp.cjs.map +10 -1
- package/lib/string/pad2.cjs.map +10 -1
- package/lib/string/sizeString.cjs.map +10 -1
- package/package.json +6 -7
- package/src/function/callbackList.ts +19 -7
|
@@ -3,7 +3,7 @@ import { nameFunction } from './functionName';
|
|
|
3
3
|
export interface MyCallback<Argument extends unknown[]> {
|
|
4
4
|
displayName?: string;
|
|
5
5
|
|
|
6
|
-
(...param: Argument):
|
|
6
|
+
(...param: Argument): any;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -12,6 +12,7 @@ export interface MyCallback<Argument extends unknown[]> {
|
|
|
12
12
|
export class CallbackList<Argument extends unknown[]> {
|
|
13
13
|
protected list: MyCallback<Argument>[] = [];
|
|
14
14
|
protected running: boolean = false;
|
|
15
|
+
protected stop: boolean = false;
|
|
15
16
|
|
|
16
17
|
constructor() {
|
|
17
18
|
this.run = (this.run as any).bind(this);
|
|
@@ -57,16 +58,27 @@ export class CallbackList<Argument extends unknown[]> {
|
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
/**
|
|
60
|
-
*
|
|
61
|
-
* @returns {boolean} true if one callback return true
|
|
61
|
+
* @returns {boolean} true if every callback called, false if stop in middle
|
|
62
62
|
*/
|
|
63
63
|
run(...argument: Argument): boolean {
|
|
64
|
+
if (this.running) {
|
|
65
|
+
throw new Error("can not run CallbackList in it's callback.");
|
|
66
|
+
}
|
|
67
|
+
this.stop = false;
|
|
68
|
+
|
|
64
69
|
this.running = true;
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
70
|
+
for (const cb of this.list) {
|
|
71
|
+
if (this.stop) break;
|
|
72
|
+
cb(...argument);
|
|
73
|
+
}
|
|
69
74
|
this.running = false;
|
|
75
|
+
|
|
76
|
+
const ret = !this.stop;
|
|
77
|
+
this.stop = false;
|
|
70
78
|
return ret;
|
|
71
79
|
}
|
|
80
|
+
|
|
81
|
+
stopRun() {
|
|
82
|
+
this.stop = true;
|
|
83
|
+
}
|
|
72
84
|
}
|