有可能吗?
更详细的问题
const source = Rx.Observable.interval(500);
const transformed = source.mergeMap(() => Rx.Observable.timer(100));
transformed
可观察的是
新
source
(我无法通过
最初的
(操作员应用前)与操作员转换后可观察到?
代码:
@AppendLoader()
@Effect()
getFriends$: Observable<Action> = this.actions$
.ofType(friendsActions.GET_FRIENDS)
.switchMap(() => {
return this.friendsService.getFriends()
.map((data: any) => new friendsActions.GetFriendsSuccessAction(data))
.catch(() => of(new friendsActions.GetFriendsFailureAction()));
});
function AppendLoader() {
return function (target: any, propertyKey: string) {
let observable: any = null;
Object.defineProperty(target, propertyKey, {
configurable: true,
enumerable: true,
get: () => {
console.log('get');
return observable;
},
set: (newObservable) => {
console.log('set', newObservable);
observable = newObservable;
observable
.subscribe((action: any) => {
console.log(action);
});
}
});
};
}
我有三个观察点:
-
this.actions$
(所有动作)
-
this.action$.ofType(friendsActions.GET_FRIENDS)
(可观察到的
friendsActions.GET_FRIENDS
-
第三个可见(第二个和
switchMap
适用于它)
GetFriendsSuccessAction
/
GetFriendsFailureAction
)
getFriends$
所有物
showLoader()
例如)。我想订阅第三个可观察值,当发出成功/失败值时,我想隐藏负载微调器。