Node.js User.save().then((doc)=>;{..})、catch((err)=>;{})和save((err,doc)=>;{..})之间有什么区别
及Node.js User.save().then((doc)=>;{..})、catch((err)=>;{})和save((err,doc)=>;{..})之间有什么区别,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,及 我也在想同样的问题。我发现: 从Functional的角度来看,如果我们除了使用第二种语法将错误发送到客户端的res.send(err)之外,这两个函数都是等效的,并且做的事情是相同的:继续对MongooseModel.FindOne()函数进行异步调用,并捕获错误 从技术角度来看,第一种语法使用a来执行此操作,第二种语法使用a。一种使用回调,另一种承诺在完成后执行操作。第一种方法是传统方法,它包括回调函数,并通过“错误优先回调”捕获错误。第二个方法使用Promises概念,所以find是成
我也在想同样的问题。我发现: 从Functional的角度来看,如果我们除了使用第二种语法将错误发送到客户端的
res.send(err)
之外,这两个函数都是等效的,并且做的事情是相同的:继续对MongooseModel.FindOne()
函数进行异步调用,并捕获错误
从技术角度来看,第一种语法使用a来执行此操作,第二种语法使用a。一种使用回调,另一种承诺在完成后执行操作。第一种方法是传统方法,它包括回调函数,并通过“错误优先回调”捕获错误。第二个方法使用Promises概念,所以find是成功的,它将转到then语句,假设发生任何错误,它将转到catch块。
User.findOne({ id: userId }, function(err, result) {
if (err) throw err;
.....
});
User.findOne({ id: userId })
.then((result)=>{
......
})
.catch((err)=>res.send(err));