Angular определяет, когда запрос отправляется и заканчивается в Angular 6 - PullRequest
0 голосов
/ 24 сентября 2018

Я хотел бы знать, как можно сделать что-то подобное лучше:

const isLoading: Boolean = true;
this.sendRequest(resource)
      .subscribe(attachmentwithdata => {
        isLoading = false;
        saveAs(attachmentwithdata.data, attachmentwithdata.name);
      });

"Мой путь" довольно уродлив, и я хотел бы знать, как вы, ребята, обычно делаете это.Чтобы быть более конкретным, я пытаюсь показать спиннер и заблокировать страницу, пока запрос еще не поступил.Я пытался с перехватчиком, но на мой взгляд становится все сложнее.Я хотел бы создать компонент, достаточно умный, чтобы управлять им внутри.Я думал передать этот компонент самой наблюдаемой?ммм я должен исследовать больше.Любая идея, будет полезно.Спасибо всем.

Ответы [ 3 ]

0 голосов
/ 24 сентября 2018

Вы можете передать наблюдаемое, а затем коснуться его трубкой https://github.com/btroncone/learn-rxjs/blob/master/operators/utility/do.md.

Что-то в этом роде

registerObservable(o: Observable<any>): Observable<any> {
    return o.pipe(tap(() => this.isEnded = true))
}

Вам необходимо подписаться на возвращаемое наблюдаемое, и оноработает как шарм

0 голосов
/ 24 сентября 2018

Для общего решения для каждого отдельного HTTP-запроса используйте перехватчик: https://angular.io/guide/http#intercepting-requests-and-responses

Для вложения, как вы использовали в своем примере (запрос с более длительным временем ответа), вы можете захотеть показать progres... Тогда используйте: https://angular.io/guide/http#listening-to-progress-events

0 голосов
/ 24 сентября 2018

Использование такого флага, как вы, - это очень хорошая практика.

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