Я совершенно новый с этой концепцией обещаний. Я не уверен, но, глядя на это, я утверждаю, что просто использую обещание как обратные вызовы, и я заканчиваю обещание!Лучшая практика использования обещаний с Mongoose
У меня есть эта функция, которая предполагает получить пользовательский объект из базы данных 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);
});
});
};
Любая идея, как использовать возвращенное обещание от Mongoose без создания нового?
Вы возвращаете те же данные, что и pass, в качестве аргумента? Это намеренно? –
Думайте, что 'fulfull (data)' совпадает с 'return data' и' reject (error) 'является просто' throw error', поэтому после этого вы можете избавиться от обещания об упаковке. – elclanrs
Не нужно добавлять дополнительные обещания, Mongoos также возвращает обещание –