Soy nuevo en escribir extensiones de navegador y estoy trabajando en algunos cambios en una extensión de Firefox. Mientras leía la documentación de browser.runtime.onMessage.addListener() encontré esta nota:
Nota: si pasa una función asíncrona a addListener() , el oyente devolverá una Promesa por cada mensaje que reciba, evitando que otros oyentes respondan:
// don't do this browser.runtime.onMessage.addListener( async (data, sender) => { if (data.type === 'handle_me') { return 'done'; } } ); Sin embargo, a pesar de esto, las funciones async addListener() parecen usarse con cierta frecuencia por lo que puedo decir (al menos, las he visto en el código para extensiones ampliamente utilizadas y conocidas, así como en ejemplos proporcionados por personas en varios hilos de foros, etc.).
¿Alguien puede proporcionar algunos detalles sobre por qué esto debería evitarse y/o si solo es un problema en ciertos escenarios? Dice que devolver una Promesa por cada mensaje recibido evitará que otros oyentes respondan... ¿eso significa que esto es solo un problema si tiene varios oyentes conectados? ¿O es algo que siempre se debe evitar pase lo que pase?
¡Cualquier idea es apreciada!