У меня есть несколько сообщений http, которые извлекают данные JSON из базы данных MySQL.Я хочу, чтобы функция прослушала их все и выполнила следующий фрагмент кода, как только все они вернут, что данные получены.
Я пробовал несколько вариантов асинхронизации с ожиданием, но функция не 'Кажется, я жду, пока не завершится публикация HTTP.
У меня есть служба риска.этот код:
getRiskTable():any {
return this.riskService.getRiskTable().subscribe(
(res: []) => {
this.riskTable = res; // the value is correctly captured here
return true;
},
(err) => {
this.error = err;
}
);
}
А затем асинхронная функция, которая запускает несколько из этих функций, теоретически предполагается, что все функции завершатся, и затем записать значение.Но по какой-то причине глобальная переменная this.riskTable не определена в этой функции.
async getAllData(){
let riskTable = await this.getRiskTable();
let risks = await this.getAllRisks();
console.log(riskTable); //This returns stuff
console.log(risks);
console.log(this.riskTable); //This returns undefined even though it was set in getRiskTable
}
Пожалуйста, любые указатели - я очень плохо знаком с угловатым, и сложность этого делает меня полностью озадаченным.2 дня и 100-кратные вариации, чтобы заставить это работать Я медленно теряю свои бананы!