在方法中表达异步方法
Express Async Method in Method
我对 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() 方法的操作就足够了,但我不知道 Express 如何处理传递给 router.post() 方法的方法:(
唯一需要将函数声明为 async
的情况是在其中使用 await
关键字。
您唯一需要使用 await
关键字的情况是您需要一个函数来等待 promise 解决后再继续。
您传递给 post
的函数在调用 pruefungController.create
后不执行任何操作。也没有什么关心它的价值returns。你不需要在那里使用 await
所以你不需要让它成为 async
.
就此而言,该函数 什么都不做 除了用相同的参数调用另一个函数,所以你可以去掉它:
router.post("/create", pruefungController.create);
我对 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() 方法的操作就足够了,但我不知道 Express 如何处理传递给 router.post() 方法的方法:(
唯一需要将函数声明为 async
的情况是在其中使用 await
关键字。
您唯一需要使用 await
关键字的情况是您需要一个函数来等待 promise 解决后再继续。
您传递给 post
的函数在调用 pruefungController.create
后不执行任何操作。也没有什么关心它的价值returns。你不需要在那里使用 await
所以你不需要让它成为 async
.
就此而言,该函数 什么都不做 除了用相同的参数调用另一个函数,所以你可以去掉它:
router.post("/create", pruefungController.create);