【发布时间】:2016-08-22 20:07:07
【问题描述】:
我正在体验 typescript 的 async/await in express。我有以下代码 sn-p 不会产生任何结果,它只是等待,就好像承诺永远不会完成一样。任何想法如何使它工作。
..
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 }) });
}
更新:
如果我用下面的行更改第一行,它会起作用。任何想法为什么?
router.get('/test', (req,res)=>this.test(req,res));
update2(已修复) - 基于下面的 @smnbbrv 答案
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 }) });
}
【问题讨论】:
-
您的代码看起来不错。我尝试运行给定的 sn-p(已删除
res.json(result);)并成功等待并解决了对test函数的调用。你的问题一定出在其他地方。
标签: node.js express typescript async-await