我在express中遇到过typescript的async / await . 我有以下代码片段,它不会产生任何结果,只是等待承诺永远不会完成 . 任何想法如何使其工作 .
..
router.get('/test', this.test);
..
private async test(req: Request, res: Response) {
const result = await this.test2();
res.json(result);
}
private async test2() {
return await this.test3();
}
private test3() {
return new Promise((resolve) => { resolve({ "working": true }) });
}
update:
如果我用下面的行改变第一行,它就可以了 . 有什么想法吗?
router.get('/test', (req,res)=>this.test(req,res));
update2 (fixed) - based on @smnbbrv answer below
private test = async(req: Request, res: Response)=> {
const result = await this.test2();
res.json(result);
}
private test2 = async ()=> {
return await this.test3();
}
private test3 = async()=> {
return new Promise((resolve) => { resolve({ "working": true }) });
}
1 回答
看起来你的'this'就像你那样传递掉了
如果您只是保留
this
值这应该与您在更新中提到的方式完全一致