Attualmente sto creando un'app Nodejs, Express, Sequelize (w. PostgreSQL) e ho incontrato alcuni problemi nell'usare promesse insieme a transazioni e loop.Utilizzo di loop e promesse nelle transazioni in Sequenza
Sto cercando di capire come utilizzare un ciclo for in una transazione. Sto cercando di scorrere un elenco di membri e creare un nuovo utente nel database per ciascuno di essi.
So che il seguente codice è errato ma mostra ciò che sto cercando di fare.
Qualcuno può indicarmi la giusta direzione?
var members = req.body.members;
models.sequelize.transaction(function (t) {
for (var i = 0; i < members.length; i++) {
return models.User.create({'firstname':members[i], 'email':members[i], 'pending':true}, {transaction: t}).then(function(user) {
return user.addInvitations([group], {transaction: t}).then(function(){}).catch(function(err){return next(err);});
})
};
}).then(function (result) {
console.log("YAY");
}).catch(function (err) {
console.log("NO!!!");
return next(err);
});
Grazie per la risposta, ma ricevo un errore che mi dice che ho bisogno di restituire una catena di promesse alla transazione. Ho provato ad aggiungere "return" prima di ogni Promise.all, ma poi ho ricevuto _ "Il commit di rifiuto non gestito è stato chiamato su questa transazione (fc7be023-1980-455e-9934-7816420daa2b), non puoi più usarlo" _ – ReturnToZero
Sì, manca un ritorno e nulla viene mai spinto all'utentePromises. –
@BenjaminGruenbaum, grazie, l'ho fatto ieri sul cellulare e non ho mai avuto la possibilità di tornare indietro e di aggiornarlo. Aggiornerò dopo quando posso – Datsik