Tengo un problema en Nodejs, la variable sessionData obtiene su valor de una base de datos, en el caso de que exista este valor se debe ejecutar nuevo cliente, el problema que tengo es que cuando ejecuto todo el código primero para ejecutar es nuevo cliente y luego obtener los datos de sessionData, ¿cómo puedo hacer para obtener primero el valor de sessionData y luego ejecutar un nuevo cliente?
let sessionData (async() => { sessionData = await cargarSession() console.log('Mi objeto recibido', sessionData) //return sessionData})();
const wa = new Client({ restartOnAuthFail: true, puppeteer: { headless: true, args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-accelerated-2d-canvas', '--no-first-run', '--no-zygote', '--single-process', '--disable-gpu', '--use-gl=egl' ], }, session: sessionData})
Todo lo que necesita hacer es mover la creación del cliente a la función asíncrona.
También mencionó en los comentarios que intentó que, sin embargo, el resto de la secuencia de comandos no pudiera acceder al objeto wa más adelante en la secuencia de comandos. Para solucionarlo, simplemente defina wa fuera de la función asíncrona y reasigne su valor.
let wa; (async() => { let sessionData = await cargarSession() console.log('Mi objeto recibido', sessionData) wa = new Client({ restartOnAuthFail: true, puppeteer: { headless: true, args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-accelerated-2d-canvas', '--no-first-run', '--no-zygote', '--single-process', '--disable-gpu', '--use-gl=egl' ], }, session: sessionData }) })();