Tengo una función asíncrona a que selecciona las columnas de una fila y luego las actualiza después de una cantidad de tiempo x, y una función asíncrona b que accede a estos mismos valores. Estoy tratando de hacer que la función b espere a que la función a termine de buscar y actualizar los valores de la fila antes de acceder a ella. Creo que la respuesta a esto tiene algo que ver con Transacciones , pero no estoy seguro de cómo implementarlo.
Aquí está mi intento al respecto:
this.storage.Instance.transaction({ isolationLevel: Transaction.ISOLATION_LEVELS.SERIALIZABLE, }, async transaction => { this.storage.Guilds.findOne({ where: { id: 1, }, lock: transaction.LOCK.UPDATE, }, { transaction: transaction, }).then(guild => { setTimeout(() => { guild.settings = 2; guild.save(); }, 10000); }); }); this.storage.Guilds.findOne({ where: { id: 1, }, }).then(guild => { guild.settings = 3; guild.save(); this.logger.debug(guild.settings); });Esta es solo una prueba que hice, en términos prácticos estas funciones estarían en ámbitos completamente diferentes. La segunda consulta SELECCIONAR PARA ACTUALIZAR no está esperando la primera SELECCIONAR PARA ACTUALIZAR.