Показать сообщение отдельно
  #3 (permalink)  
Старый 19.03.2019, 14:07
Интересующийся
Отправить личное сообщение для kotelok Посмотреть профиль Найти все сообщения от kotelok
 
Регистрация: 27.08.2018
Сообщений: 22

Получилась такая вот странная конструкция для подгрузки конфига, если его нет в кэше:
----
    private getAuthConfig(): Observable<boolean> {
        if (this.appConfig.authServerConfig != null) {
            return Observable.of(true);
        }

        return this.httpClient.get("{auth}/.well-known/openid-configuration").flatMap((response: string) => {
            this.appConfig.authServerConfig = response;
            return Observable.of(true);
        }).catch(error => {
            return Observable.of(false);
        });
    }


И такой код, для его вызова:
----
        this.getAuthConfig().subscribe((config) => {

            if (config != true) {
                console.error("error: auth server config");
                return;
            }

            console.info(this.appConfig.authServerConfig["token_endpoint"]);
        });


Но как-то очень уж громоздко выглядит для простой логики.

И ещё возникает проблема, когда требуется несколько http-запросов последовательно выполнить в рамках одного блока логики, т.е.:
1. Что-то забрать с сервера по http-get.
2. После п.1. отправить первый http-post.
3. После п.2. что-то сделать с полученным данными, выполнить следующий http-post.
4. После п.3 произвести обработку данных для отображения пользователю.

У меня, почему-то, каждый раз получаются многоуровневые вложенные конструкции, которые сложно читать. Т.е. по логике кода - одноуровневые последовательные запросы, а реализация - многовложенная. Можно это как-то обойти или это специфика JS?
Ответить с цитированием