我使用的是角2和RxJS 5。
这两者之间有什么区别吗?
应该先使用哪一种?谢谢
isOpen$ = new BehaviorSubject<boolean>(true);和
isOpen$ = BehaviorSubject.create(true);发布于 2016-05-14 06:22:20
BehaviorSubject没有create方法,因此我猜想Subject基类正在公开这个方法。
使用构造函数。在本例中,您应该使用BehaviorSubject的构造函数。create方法用于组合Observer和Observable。
例如,您可以通过执行以下操作将WebSocket转换为Subject:
var webSocket = new WebSocket(url);
var observer = Observer.create(next => webSocket.send(JSON.stringify(next)));
var observable = Observable.fromEvent(webSocket, 'message', m => JSON.parse(m.data));
var subject = Subject.create(observer, observable);发布于 2016-05-14 06:25:39
在Subject上,它们似乎完全一样。然而,在BehaviorSubject上没有create方法。它是从Subject继承来的
这是来自Subject的代码
static create: Function = <T>(destination: Observer<T>, source: Observable<T>): Subject<T> => {
return new Subject<T>(destination, source);
};
constructor(protected destination?: Observer<T>, protected source?: Observable<T>) {
super();
this.source = source;
}在BehaviorSubject上,它可能还没有实现。可能会在将来实施。
因此,在BehaviorSubject中,create的行为与构造函数完全不同。
https://stackoverflow.com/questions/37218114
复制相似问题