我想构建一个包装类,它在 Observable 的每个发射值之前和之后做一些事情。
这是我想出的:
class Wrapper<T> {
wrapped$: Observable<T>;
_dataSubject = new Subject<T>();
data$ = this._dataSubject.pipe(
tap(_ => console.log("BEFORE"),
//
// map( ??? )
//
);
constructor(wrapped$: Observable<T>) {
this.wrapped$ = wrapped$.pipe(
tap(_ => console.log("AFTER")
);
}
}
let subject = new Subject<string>();
let wrapper = new Wrapper(subject);
wrapper.data$.subscribe(val => console.log(val));
subject.next("foo")
控制台输出应该是:
BEFORE
foo
AFTER
我不知道如何连接$wrapped
Observable 与_dataSubject
.
但也许我完全错了,它需要一种不同的方法。