我正在使用如下代码:
<option>
使用以下辅助函数:
Angular 2
现在我想编辑此observable中的缓存数据。我可以简单地重置public Observable<DBContact> getFriends()
{
if (mFriends == null)
{
mFriends = Observable
.fromIterable(MainApp.getDB().getAll(DBContact.TABLE, new DBContact(), null))
.compose(RxUtil.cacheAndShare());
}
return mFriends;
}
变量并创建一个新变量然后一切正常,但我更喜欢一种更有效的方法。我可以以某种方式从缓存的数据中删除一个项目吗?
修改
我的有效但丑陋的解决方案如下:
public static <T> ObservableTransformer<T, T> cacheAndShare()
{
return new ObservableTransformer<T, T>()
{
@Override
public ObservableSource<T> apply(Observable<T> observable)
{
return observable.cache().replay().refCount();
}
};
}
这真的是要走的路吗?