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

В общем, попробовал по аналогии с C#. Похоже, в TS тоже есть какая-то реализация 'await' и, судя по поведению, работает она похожим образом. Т.е. пока await-блок не завершится, следующий за ним оператор ожидает своей очереди. Последовательные (зависимые) http-вызовы при таком подходе записываются намного нагляднее. При этом сам метод возвращает управление после первого же 'await', а весь остальной хвостик продолжает выполнение параллельно.
----
        //
        await (async () => {
            if (this.appConfig.authServerConfig != null) {
                return null;
            }
            
            return this.httpClient.get("{auth}/.well-known/openid-configuration").toPromise().then((response:string) => {
                this.appConfig.authServerConfig = response;
            }, (error:HttpErrorResponse) => {
                console.info(error);
            });
        })();

        //
        if (this.appConfig.authServerConfig == null) {
            return;
        }

        //
        console.info(this.appConfig.authServerConfig);

Последний раз редактировалось kotelok, 19.03.2019 в 15:37.
Ответить с цитированием