我在打字稿文件中有以下情形:
async function a() : Promise<void> {
try {
var result = await b();
console.log('result=' + result);
} catch(err){
} finally {
console.log('fin');
}
}
async function b() : Promise<number> {
let x: number = 1;
console.log('start');
// A long time taking http call - tried making the http request, both with or without await, but no change in result.
// x got modified to 2 as a result of above call.
console.log('x=' + x);
return x;
}
a();
所有这些都发生在单个文件中,其骨架几乎在上面,我在这里的担心是对于上面的代码,我希望输出为start x=2 result=2 fin
。
但是我得到的输出是start result=undefined fin x=2
。
从输出中看,函数b似乎开始执行,但是由于要花时间,因此即使我已经等待,下一行也要执行。同样,打印中的x = 2确认http调用成功。因此,我无法根据b的输出将任何逻辑放入a中。
我的tsconfig具有以下内容:
"target": "es2015",
"module": "commonjs",
"lib": ["es5","es2015"]
有人可以帮我吗?谢谢