Node.js Nodejs express尝试捕获vs然后捕获

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 => {

更好的方法是:使用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 => {
        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
语法提供了线性的代码流,我发现它更容易阅读。但请记住,这不是全部或全部。在有意义的地方,可以同时使用这两种方法。