Quiero procesar el flujo de datos e insertarlo en la base de datos de forma sincrónica. ¿Cómo puede hacerlo? Si paso una función asíncrona a stream.on , no se procesará de forma síncrona.
return new Promise(async (resolve, reject) => { logger.info("Initiating snowflake connection") const connection = await getConnection(); const statement = await connection.execute({ sqlText: 'SELECT * FROM CMO_DATA;', complete: function (err, stmt, rows) { var stream = statement.streamRows(); stream.on('data', async function (row) { logger.info("Processing data =>", row) await SnowflakeData.insertOne(row); count++; }); stream.on('end', function () { logger.info('All rows consumed =>', count); resolve() }); stream.on('error', function (err) { logger.error('Failed to consume all rows', err); reject(err) }); } }); })