Transaction de Knex avec des promesses

Je reçois le bon de sortie, et en effet, ces deux opérations sont traitées comme une seule unité transactionnelle; où, si l'on échoue, les deux échouent.

Dans cet exemple de code: je suis en train de faire une transaction de

(1) insérer
(2) mise à jour

La façon dont je m'approche il est de mon nid db opérations à l'intérieur de l' .alors.
Ma question est de savoir si ce code est correct par accident? je suis nouveau à des promesses et des knex.

knex.transaction(function(t) {
   knex('foo')
   .transacting(t)
   .insert({id:"asdfk", username:"barry", email:"[email protected]"})
   .then(function() {
       knex('foo')
       .where('username','=','bob')
       .update({email:"[email protected]"})
       .then(t.commit, t.rollback)
   })
})
.then(function() {
 //it worked
},
function() {
 //it failed
});

Cela fonctionne, mais je sens que je fais quelque chose de mal encore. La recherche de commentaires.

source d'informationauteur david