Node.js Nodejs express尝试捕获vs然后捕获
更好的方法是:使用wait和try-and-catch还是使用.then-and.catch 大家好 这两种方法中哪一种更好Node.js Nodejs express尝试捕获vs然后捕获,node.js,express,async-await,try-catch,Node.js,Express,Async Await,Try Catch,更好的方法是:使用wait和try-and-catch还是使用.then-and.catch 大家好 这两种方法中哪一种更好 app.post("/signup", (req, res) => { var user = new User(req.body) user.save().then(result => { res.status(200).send("success") }).catch(error => {
app.post("/signup", (req, res) => {
var user = new User(req.body)
user.save().then(result => {
res.status(200).send("success")
}).catch(error => {
console.log(error)
res.send(error)
})
});
app.post("/signupasync", async (req, res) => {
try {
var user = new User(req.body)
await user.save()
res.status(200).send("success")
} catch (error) {
console.log(error)
res.send(error)
}
Async/await
实际上只是构建在承诺之上的语法糖。它不能与普通的回调
或节点回调
一起使用
它就像承诺
,非阻塞
,但使异步
代码看起来和行为更像同步
代码。这就是它强大的原因,这就是它所有的力量所在
如果使用async/await
,就不会有太多缩进。所有代码都是线性的,可读性更强
任何可以通过promise(.then().catch(0))实现的†都可以通过async/await实现。
任何async
函数都隐式返回一个promise
,promise的解析值将是从函数返回的任何值。即使您返回一个简单的值而不是promise
,它也会在返回之前将其包装在promise
中。async/await
语法提供了线性的代码流,我发现它更容易阅读。但请记住,这不是全部或全部。在有意义的地方,可以同时使用这两种方法。