Подскажите, как правильно реализовать следующую логику (см код):
1. Если есть закэшированный конфиг, то пропустить его запрос с сервера и сразу перейти к выполнению последующего кода (последняя строка).
2. Если НЕТ закэшированного конфига, то запросить его с сервера, дождаться (!) результата и, если ок, то сохранить в кэш и после этого перейти к последующему коду (последняя строка). Если ошибка - завершить выполнение.
В том виде, что сейчас написано работает некорректно, т.е. 'console.info' начинает выполняться ещё до получения ответа по 'httpClient.get'.
При этом помещать 'console.info' внутерь подписки тоже нельзя, т.к. в этом случае он не выполнится, если данные изначально есть в кэше.
Дублировать вызов тоже как-то неправильно с точки зрения организации кода.
Собственно, какой синтаксис позволит запустить 'httpClient.get' синхронно, т.е. чтобы до его полного завершения не происходило выполнения последующего кода этого метода?
----
if (this.appConfig.authServerConfig == null) {
this.httpClient.get("{auth}/.well-known/openid-configuration").subscribe((response:string) => {
this.appConfig.authServerConfig = response;
},
(httpError:HttpErrorResponse) => {
console.error("error: get auth server config");
});
}
console.info(this.appConfig.authServerConfig["token_endpoint"]);