Так лучше тоже не делать.
Самое простое, что можно придумать в такой ситуации, это добавить метаданные isLoading, isLoaded, hasError. Тогда код будет выглядеть примерно следующим образом:
concat(
of({ isLoading: true }),
request().pipe(
map(toResponse()),
catchError(toError())
)
)
Есть ещё другие подходящие для этого операторы, вот тут можно их подглядеть
https://medium.com/ngx/practical-use-rxjs-81aaab57045c