Ich habe diese Versprechen-Kette. Im zweiten Versprechen brauche ich user, der von user.save zurückgegeben wird. Wie kann ich es bekommen, ohne die Versprechens-Kette zu brechen? Ich brauche es, um eine Kette zu sein, weil ich das letzte Versprechen benötige, um das richtige Attribut zum Versprechen zurückzugeben, wenn die Funktion aufgerufen wird.Wie man Variablen in der Versprechenskette weitergibt?
Ich nenne ein Verfahren wie folgt aus:
User.createRider(req.query).then((user) => {
res.json(user);
});
User = sequelize.define('user', {},{
classMethods: {
createRider: function(params) {
var values = [],
userAttributes = sequelize.models.userAttributes,
user = User.build(),
name = userAttributes.build({name: 'name', value: params.name}),
fbprofile = userAttributes.build({name: 'fbprofile', value: params.fbprofile}),
phone = userAttributes.build({name: 'phone', value: params.phone});
user = user.save()
.then(sequelize.Promise.all([
fbprofile.save(),
name.save(),
phone.save()
])
)
.then((attributes) => {
user.addUserAttributes(attributes);
return user;
});
return user;
}
}
});
Können Sie den Code für addUserAttributes() bitte auch posten? – marton
Ich werde dies nicht als Antwort veröffentlichen, da Sie speziell nach Promises fragen, aber ich werde sagen, dass dieses Problem mit async.js sowohl trivial als auch klar zu lösen ist. Ich benutze asyncwasserfall für diese Art von Sache. – Paul