Chaining waterline Anrufe mit Versprechen
Ich habe in den letzten 3 Tagen meinen Kopf von einer Wand geschlagen.
Ich benutze sailsjs und das mitgelieferte ORM für die Wasserlinie. Ich möchte DB-Aufrufe nacheinander ausführen. Ich weiß, dass ich das tun kann, indem ich in "then" -Aufrufen verschachtele, aber es sieht einfach falsch aus.
Ich habe die Q-Dokumentation und die Tutorials mehrmals durchgesehen, aber ich verstehe immer noch nicht, wie ich Anrufe von vorhandenen Promises nacheinander verbinden und abfeuern kann:
Ich will
Erstelle einen BenutzerErstelle eine Aktionlink the user & actionUpdate den Benutzeraktualisiere die AktionMein Code sieht aus wie
var mail = '[email protected]';
Users.create({email:mail, name:''}).then(console.log).fail(console.log);
Actions.create({actionID:123})
.then(function(error, action){
Users.findOneByEmail(mail).then(function(person){
person.actions.add(action.id);
person.save(console.log);
}).fail(console.log)
});
Users.update({email:mail},{name:'Brian'}).exec(console.log);
Actions.update({actionID:123},{now:'running'}).exec(console.log);
Wie Sie dem Code entnehmen können, habe ich eine Mischung aus exec & then verwendet: P
Ich denke, der Weg ist, die Users.create (...). Dann -> Action.create (...). Dann -> Users.findOneByEmail (...). Dann -> * und die Updates zu verbinden.
Vielen Dan von jeder Hilfe