From e8549a10cf7b3ed5a04209bdd7d58b9a3c073f32 Mon Sep 17 00:00:00 2001 From: Edgard Date: Thu, 17 Nov 2022 22:39:16 -0300 Subject: [PATCH] fix: Fixed onMessage method (fix #1351) --- src/api/layers/listener.layer.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/api/layers/listener.layer.ts b/src/api/layers/listener.layer.ts index 946c3e77f..818e95133 100644 --- a/src/api/layers/listener.layer.ts +++ b/src/api/layers/listener.layer.ts @@ -52,6 +52,8 @@ export class ListenerLayer extends ProfileLayer { constructor(public page: Page, session?: string, options?: CreateConfig) { super(page, session, options); + this.listenerEmitter.setMaxListeners(0); + this.listenerEmitter.on(ExposedFn.onInterfaceChange, (state) => { this.log('http', `Current state: ${state.mode} (${state.displayInfo})`); }); @@ -92,9 +94,17 @@ export class ListenerLayer extends ProfileLayer { if (!has) { this.log('debug', `Exposing ${func} function`); await this.page - .exposeFunction(func, (...args) => - this.listenerEmitter.emit(func, ...args) - ) + .exposeFunction(func, (...args) => { + Promise.resolve().then(() => { + this.log( + 'debug', + `Emitting ${func} event (${this.listenerEmitter.listenerCount( + func + )} registered)` + ); + this.listenerEmitter.emit(func, ...args); + }); + }) .catch(() => {}); } } @@ -263,6 +273,7 @@ export class ListenerLayer extends ProfileLayer { event: string | symbol, listener: (...args: any[]) => void ) { + this.log('debug', `Registering ${event.toString()} event`); this.listenerEmitter.on(event, listener); return { dispose: () => {