2016-04-21 13 views
4

Ich weiß über Transaktionen, aber die Art, wie es in Rückrufen behandelt wird, sieht aus wie die DB einmal getroffen wird. Danach wird es zurück an den Server kommuniziert, und als Ergebnis übernimmt der Server die nächste Operation und so weiter.So führen Sie mehrere Operationen gleichzeitig aus mit Sequelize

möchte ich mehrere unabhängige Operationen auf einmal, um wirklich effizient (nicht Chaining)

Wie machen: user.destroy(); post.create({...}); anotherPost.destroy();

Sie sind alle unabhängig und müssen nicht verkettet werden. Ich möchte nur alle diese gleichzeitig ausführen. Wie kann ich das machen?

+0

Was Sie versucht haben? Und welche Art von Fehlern haben Sie bekommen? – denisazevedo

Antwort

3

Der einfachste Weg, hier ist Promise.props zu verwenden, wie:

var promises = { 
    userDestroy = user.destroy(), 
    postCreate = post.create(), 
    postDestroy = anotherPost.destroy() 
}; 

sequelize.Promise.props(promises).then(function(results) { 
    /// each promise is resolved here, results: 
    results.userDestroy; 
    results.postCreate; 
    results.postDestroy; 
}); 

hier weitere Informationen: http://bluebirdjs.com/docs/api/promise.props.html Oder Sie können .all verwenden, wenn Sie eine Reihe von Versprechungen müssen: http://bluebirdjs.com/docs/api/promise.all.html

Verwandte Themen