Kette von zusagen in javascript
Habe ich viele Versprechungen wie, dass, um zu schaffen-Objekt in meiner Datenbank.
var createUserPromise = new Promise(
function(resolve, reject) {
User.create({
email: '[email protected]'
}, function() {
console.log("User populated"); //callback called when user is created
resolve();
});
}
);
Am Ende, ich will rufen alle meine Versprechungen in der Reihenfolge, die ich möchte. (da somes-Objekt abhängig von anderen, also muss ich halten, um)
createUserPromise
.then(createCommentPromise
.then(createGamePromise
.then(createRoomPromise)));
Ich erwarte also zu sehen :
User populated
Comment populated
Game populated
Room populated
Leider diese Nachrichten sind gemischt und ich verstehe nicht, was.
Dank
Hinweis: - mongoose gibt bereits verspricht - Ihr code sollte
new Promise
genau null mal. Bitte sehen stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how-do-i-avoid-it und mongoosejs.com/docs/promises.htmlInformationsquelleAutor Epitouille | 2016-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht aus wie Sie verstanden Versprechungen falsch, wieder Lesen, einige tutorials auf verspricht und dieses Artikel.
Sobald Sie erstellen ein Versprechen mit
new Promise(executor)
es wird aufgerufen, sofort, so dass alle Ihre Funktion tatsächlich ausgeführt werden, wie Sie Sie erstellen und nicht, wenn Sie die Kette.createUser
sollte eigentlich eine Funktion zurückgeben ein Versprechen, und nicht ein Versprechen sich selbst.createComment
,createGame
,createRoom
zu.Dann werden Sie in der Lage sein Kette Sie wie folgt:
Neuesten Versionen von Mungo Rendite verspricht, wenn Sie sich nicht über Rückrufe, so brauchen Sie nicht, wickeln Sie es in eine Funktion zurückgeben ein Versprechen.
Nur eine kleine Korrektur.... du hast vergessen die Klammer auf
createUser
, da es eine Funktion ist.guter Fang!
vielen Dank für den Artikel. es hilft.
InformationsquelleAutor nvartolomei
Sollten Sie wickeln Sie Ihre Versprechen in die Funktionen. Die Art und Weise, die Sie tun, Sie sind als Rechte Weg.
Nun können Sie die Kette Verspricht, wie dieses:
du hast Recht. aktualisiert!
InformationsquelleAutor Julio Betta