Node.js表达try-catch vs然后catch

时间:2019-07-04 13:25:50

标签: node.js express async-await try-catch

还有什么更好的方法:使用await尝试捕获还是使用.then和.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)
   }

1 个答案:

答案 0 :(得分:2)

Async/await实际上只是建立在syntax sugar之上的promises。不能与普通callbacksnode callbacks一起使用。

它类似于promisesnon blocking,但是使asynchronous代码看起来和行为更像synchronous代码。这就是它强大的原因,那就是其所有功能所在。

如果您使用async/await,则缩进不会太多。您所有的代码都是线性的,并且更具可读性。

任何事情{hat promise (.then().catch(0))都可以实现async/await.

任何async函数都会隐式返回一个promise,并且promise的解析值将是您从该函数返回的值。即使您返回一个简单值而不是promise,它也会在返回前将其包装在promise中。