还有什么更好的方法:使用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)
}
答案 0 :(得分:2)
Async/await
实际上只是建立在syntax sugar
之上的promises
。不能与普通callbacks
或node callbacks
一起使用。
它类似于promises
,non blocking
,但是使asynchronous
代码看起来和行为更像synchronous
代码。这就是它强大的原因,那就是其所有功能所在。
如果您使用async/await
,则缩进不会太多。您所有的代码都是线性的,并且更具可读性。
任何事情{hat promise (.then().catch(0))
都可以实现async/await.
任何async
函数都会隐式返回一个promise
,并且promise的解析值将是您从该函数返回的值。即使您返回一个简单值而不是promise
,它也会在返回前将其包装在promise
中。