async-await в машинописи - не дожидается полного выполнения ожидаемой функции - PullRequest
0 голосов
/ 13 марта 2019

У меня есть следующий сценарий в файле машинописного текста:

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"] 

Может кто-нибудь, пожалуйста, помогите мнес этим?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...