{ prue-6ren">
gpt4 book ai didi

javascript - 在方法中表达异步方法

转载 作者:行者123 更新时间:2023-12-05 05:40:32 25 4
gpt4 key购买 nike

我对 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);
}

将创建方法声明为异步是否足够,还是我必须像这样将回调也声明为异步?

router.post("/create", async (req: Request, res: Response) => {
await pruefungController.create(req, res);
});

在我看来,等待 .save() 方法的 Action 就足够了,但我不知道 Express 如何处理传递给 router.post() 方法的方法:(

最佳答案

唯一需要将函数声明为 async 的情况是在其中使用 await 关键字。

唯一需要使用 await 关键字的情况是,如果您需要一个函数来等待 promise 解决后再继续。

您传递给 post 的函数在调用 pruefungController.create 后不会执行任何操作。也不关心它返回的值。你不需要在那里使用 await,所以你不需要让它成为 async

就此而言,该函数除了用相同的参数调用另一个函数外什么都不做,因此您可以摆脱它:

router.post("/create", pruefungController.create);

关于javascript - 在方法中表达异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72390646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com