Nodejs выражают try-catch vs затем catch - PullRequest
2 голосов
/ 04 июля 2019

Что лучше: используя await и try and catch или используя .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 Ответ

2 голосов
/ 04 июля 2019

Async/await - это просто syntax sugar, построенный поверх promises. Его нельзя использовать с обычными callbacks или node callbacks.

Это похоже на promises, non blocking, но код asynchronous выглядит и ведет себя немного как код synchronous. Это то, что делает его мощным, в этом вся его сила.

У вас не будет слишком много отступов, если вы перейдете с async/await. Весь ваш код будет линейным и более читабельным.

Все, что может быть достигнуто с помощью promise (.then().catch(0)), может быть достигнуто с async/await.

Любая функция async возвращает неявно promise, и разрешенное значение обещания будет тем, что вы вернете из функции. Даже если вы возвращаете простое значение, а не promise, оно возвращается в promise перед возвратом.

...