diff --git a/packages/fineui/src/core/controller/controller.broadcast.js b/packages/fineui/src/core/controller/controller.broadcast.js index 3f1eb3035..0ce6406b6 100644 --- a/packages/fineui/src/core/controller/controller.broadcast.js +++ b/packages/fineui/src/core/controller/controller.broadcast.js @@ -16,13 +16,13 @@ export class BroadcastController extends Controller { this._broadcasts[name] = []; } this._broadcasts[name].push(fn); - + return () => this.remove(name, fn); } send(name) { const args = [].slice.call(arguments, 1); - each(this._broadcasts[name], (i, fn) => fn(...args)); + each(this._broadcasts[name]?.slice?.(), (i, fn) => fn(...args)); } remove(name, fn) { @@ -34,7 +34,7 @@ export class BroadcastController extends Controller { } else { delete this._broadcasts[name]; } - + return this; } }