* @param {string} event * @param {(...args: any[]) => any} callback * @returns {any}
(event, callback)
| 165 | * @returns {any} |
| 166 | */ |
| 167 | $on(event, callback) { |
| 168 | this.#events[event] = this.#events[event] || []; |
| 169 | |
| 170 | /** @param {any[]} args */ |
| 171 | const cb = (...args) => callback.call(this, ...args); |
| 172 | this.#events[event].push(cb); |
| 173 | return () => { |
| 174 | this.#events[event] = this.#events[event].filter(/** @param {any} fn */ (fn) => fn !== cb); |
| 175 | }; |
| 176 | } |
| 177 | |
| 178 | $destroy() { |
| 179 | this.#instance.$destroy(); |