我的应用程序中有各种类使用BehaviorSubject
。
有时,我想从服务器向其发布新数据。我试着这样做:
const subject = new BehaviorSubject<Entity>(undefined);
loadDataFromServer().subscribe(subject);
loadDataFromServer()
函数返回Observable<Entity>
,在订阅时会发出一个Entity
,然后结束。
通过这样的实现,BehaviorSubject
也将在observable终止时终止。但是,我想避免这种情况。
当然,我可以这样做:
loadDataFromServer().subscribe(entity => subject.next(entity));
但是,我想知道,是否有其他选项可以从源observable中过滤掉错误和终止事件?或者这是最佳方式吗?
答案 0 :(得分:1)
我认为你所做的很好,也许是最简单的方法。但是,如果您想对运算符执行此操作,则可以使用contentView.bottomAnchor.constraint(equalTo: safeBottomAnchor).isActive = true
和materialize()
。这会首先将每个排放转换为特殊的dematerialize()
对象(所有通知都将被包装并以Notification
形式发送),您可以过滤除next
个通知之外的所有内容,然后使用{{1}将它们转换回实际排放量
next