我對 ExpressJS 很陌生,所以我對我的代碼有疑問。
router.post("/create", (req: Request, res: Response) => {
pruefungController.create(req, res);
});
public async create(req: Request, res: Response): Promise<void> {
const pruefung = new Pruefung({
fach: req.body.fach,
datum: req.body.datum,
raum: req.body.raum
});
await pruefung.save();
res.send(pruefung);
}
將create方法宣告為異步就足夠了,還是我必須像這樣將回呼也宣告為異步?
router.post("/create", async (req: Request, res: Response) => {
await pruefungController.create(req, res);
});
在我看來,等待 .save() 方法的操作就足夠了,但我不知道 Express 如何處理傳遞給 router.post() 方法的方法:(
uj5u.com熱心網友回復:
唯一一次你需要宣告一個函式,async
如果你await
在其中使用關鍵字。
唯一需要使用await
關鍵字的情況是,如果您需要一個函式來等待 Promise 解決,然后再繼續。
您傳遞給的函式post
在呼叫pruefungController.create
. 也不關心它回傳的值。你不需要在await
那里使用,所以你不需要制作它async
。
就此而言,該函式除了呼叫具有相同引數的另一個函式之外什么也不做,因此您可以擺脫它:
router.post("/create", pruefungController.create);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481694.html
標籤:javascript 节点.js 打字稿 表示 异步等待
上一篇:如何填充貓鼬中的嵌套物件?
下一篇:返回列表