私はこの約束のコンセプトでかなり新しいです。私は確信していないが、これを見て、私はコールバックとして約束を使用していると私は約束地獄で終わると思う!プロムスとモンゴースのベストプラクティス
私はこの機能を利用してMongoUserデータベースからユーザオブジェクトを取得し、更新して再度保存します。ここに私のコードスニペットがあります:
var changePassword = function(data){
return new Promise(function(fulfill, reject){
MongoUser.findOne({username: data.username}).exec()
.then(function(mongoUser){
//mongoUser = new MongoUser();
//mongoUser.username = data.username;
mongoUser.password = data.password;
mongoUser.save().then(function(){
fulfill(data);
}).catch(function(error){
log.error("MongoDB Failed in updating data", {"error": error});
reject(error);
});
})
.catch(function(error){
log.error("MongoDB Failed in updating data", {"error": error});
reject(error);
});
});
};
任意のアイデア新しいものを作成せずに返された約束をどのように使用するのですか?
引数と同じデータが返されていますか?それは意図的ですか? –
'fulfull(data)'は 'return data'と同じで、' reject(error) 'は' throw error'だけだと思うので、それ以降はラッピングの約束を取り除くことができます。 – elclanrs
余分な約束を加える必要はなく、Mongoosも約束を返す –