【发布时间】:2023-03-08 21:45:01
【问题描述】:
我理解 JavaScript 中的 Promise 或至少我认为我理解(如果我错了,请纠正我)。
创建承诺:
var promise = new Promise(function(resolve, reject){
// do something async here
if(itWorked){
resolve();
}else {
reject();
}
});
使用承诺:
promise.then(function(result){
},function(err){
});
我有一个基于 MEAN Stack 的应用程序,我的一些 mongoose 路由正在成为回调地狱。我想摆脱猫鼬路由中的回调并使用 Promises 处理它们。但我似乎无法弄清楚该怎么做。
例如:
app.get('/users', function(req, res){
User.findOne(_id, function(err, user){
if(err)
console.log(err)
else if(user){
Receipt.findOne(user.bookName, function(err, book){
if(err)
console.log(err)
else if(book){
// again do something here
}
})
}
})
});
在上面的示例中,您可以看到代码变得越来越难以阅读和维护。我如何在这里使用 Promises 来改进我的代码?
【问题讨论】:
标签: javascript node.js mongodb mongoose promise