Rx js завершить после завершения кода в подписке - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть приложение Angular (9), и у меня есть несколько компонентов, которые запрашивают вычисления по сравнению с остальными и отображают результат в разных редакторах. Теперь, прежде чем сделать запрос, я вызываю панель загрузки, а после завершения запроса скрываю панель загрузки в обратном вызове финализатора. Примерно так:

this.isloading = false;
httpclient.get('http://localhost/calculate').pipe(finalize(() =>this.isloading=false).subscribe(v=>{
 //make some operations with the data and set editor values
});

теперь панель загрузки не работает до того, как будут установлены все значения редактора. Обратный вызов finalize вызывается напрямую, если запрос завершается, но как вызвать что-то вроде finalize, если код внутри подписки или ошибки завершается?

1 Ответ

0 голосов
/ 01 апреля 2020

Назовите это в конце вашего subscribe блока? похоже, ваш finalize используется в каждом "месте", где он вам нужен (он не абстрагируется внутри службы), поэтому вы можете просто позвонить this.isLoading = false; в качестве последнего утверждения вашего subscribe или error блоки

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