Firebase:将承诺转换为异步/等待



下面是使用 promise(.then( 的代码片段,它工作正常,但是当我将其转换为异步等待时,我收到一个错误,该错误被 catch 块捕获

承诺-

exports.createScream = functions.https.onRequest((req, res) => {
if (req.method !== "POST") {
return res.status(400).json({ error: "Method not allowed" });
}
const newScream = {
body: req.body.body,
userHandle: req.body.userHandle,
createdAt: admin.firestore.Timestamp.fromDate(new Date())
};
admin
.firestore()
.collection("screams")
.add(newScream)
.then(doc => {
res.json({ message: `document ${doc.id} created successfully` });
})
.catch(err => {
res.status(500).json({ error: "something went wrong" });
console.error(err);
});
});

异步/等待 -

exports.createScream = functions.https.onRequest(async (req, res) => {
if (req.method !== "POST") {
return res.status(400).json({ error: "Method not allowed" });
}
try {
const newScream = {
body: req.body.body,
userHandle: req.body.userHandle,
createdAt: admin.firestore.Timestamp.fromDate(new Date())
};
const res = await admin
.firestore()
.collection("screams")
.add(newScream);
return res.json({
message: `document ${doc.id} created successfully`
});
} catch (err) {
console.error(err);
return res.status(500).json({ error: "something went wrong" });
}
});

请让我知道异步/等待部分代码有什么问题

根据@user2222上面的评论const doc = await admin .firestore() .collection("screams") .add(newScream);解决了问题

最新更新