Estoy creando una aplicación con WebSockets en Node.js. Para ejecutar ciertas cosas de forma asíncrona, envolví un código asíncrono en una función asíncrona y luego lo ejecuté.
Sin embargo, el problema es que cada vez que se ejecuta esta parte, el código arroja un error que indica que call.createTransport no es una función. Esta función está claramente definida en la clase Call y funciona cuando la llamo fuera de este contexto.
Procedí a registrar la llamada y descubrí que antes de ejecutar la función asíncrona, el objeto de llamada era una instancia de Call, pero dentro de la función asíncrona es un objeto JavaScript normal, con las propiedades pero no los métodos definidos.
Estoy completamente atascado en este tema. Estoy ejecutando Node.js 16 LTS.
(async (call, produce, consume) => { let sendTransport; if (produce) { sendTransport = await call.createTransport(); } let receiveTransport; if (consume) { receiveTransport = await call.createTransport(); } return { sendTransport, receiveTransport }; })(client.call, produce, consume).then(({ sendTransport, receiveTransport }) => { callClients.set(sId, { ...client, produce: true, sendTransport, receiveTransport }); s.send(JSON.stringify({ type: CallEventType.TRANSPORT, data: { sendTransport, receiveTransport } })); });