Bluebird verspricht - jede Funktion
Danke im Voraus für die Hilfe.
Während der Verwendung Bluebird verspricht, habe ich eine Reihe von Versprechungen ausgeführt. Während der letzten Versprechen, will ich ausführen einer Funktion mehrere Male für jedes Objekt in einem array.
Dort unten ist der pseudocode:
var userArray = [
{
name: "John",
email: "[email protected]"
},
{
name: "Jane",
email: "[email protected]"
}];
var functionOne = function() {
//returns Promsie object
};
var functionTwo = function() {
//returns promise object
};
var createUser = function(user) {
return User.findOrCreate({email: user.email},{
name: user.name,
email: user.email
});
};
functionOne()
.then(functionTwo)
.each(createUser(userArray))
.then(function onComplete() {
console.log("Complete");
})
.catch(function onError() {
console.log("Um...it's not working");
});
Ich weiß, ich bin nicht mit der each-Funktion richtig. Was ist der richtige Weg, um dies zu implementieren, mithilfe von Bluebird?
- was ist das array, das Sie Durchlaufen mit
each
auf? Ist es wieder vonfunctionTwo
oder ist esuserArray
? - Ich will die Iteration auf userArray
- Übergeben Sie müssen eine callback-Funktion, die
each
, nicht ein Versprechen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, ich verstehe, Sie wollen, um einige asynchrone Aktionen für die Elemente von Arrays. Dann überprüfen Sie bitte Folgendes Beispiel:
oder
Ich auch empfehlen die Verwendung von "alle" statt "jeder"
Überprüfen Sie die folgenden Beispiele:
oder
'alle' werden Sie Benachrichtigen, wenn alle Maßnahmen ergriffen werden, richtig.
Wie zu verwenden verspricht (best practice):
http://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html
https://blog.domenic.me/youre-missing-the-point-of-promises/
createUsersFromArray(userArray) .then(function(createdUser){ console.log(createdUser) });
habe ich auch aktualisiert, meine Antwort, bitte prüfen Sie die Funktion, bevor 'onComplete'Die einfachste Umsetzung:
Die Sie verwenden sollten .Karte statt .wenn Sie möchten, um Zugriff auf die Ergebnisse aller dieser erstellt.
Danke @Roman @Juri für die Hilfe! Meine nun funktionierende code ist unten: