Что лучше: использовать 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.info(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.info(error)
res.send(error)
}





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.
async/awaitсинтаксис предлагает линейный поток кода, и мне его легче читать. Но имейте в виду, что это не все или ничего. Вы можете использовать оба там, где это имеет смысл.