У меня есть следующий сценарий в файле машинописного текста:
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-вызов успешен.Таким образом, я не могу поместить какую-либо логику в функцию a, основываясь на выводе b, что я собираюсь сделать.
Мой tsconfig имеет следующее:
"target": "es2015",
"module": "commonjs",
"lib": ["es5","es2015"]
Может кто-нибудь, пожалуйста, помогите мнес этим?Спасибо