RXJS 更新 Subject 类似于 Svelte 商店?

RXJS update Subject similar to Svelte stores?

有没有办法用当前值的实例更新 RXJS 主题,例如 Svelte 商店? 目前我有:

const materials = someMethodToGetResults();
const tmp = this.activeFilters.value;
tmp.materials = materials;
this.activeFilters.next(tmp);

我认为这不是很优雅。我总是需要更新整个对象,而我只真正需要更新属性。我认为 Svelte 解决了这个超级优雅的问题,商店有这样的更新方法:

this.activeFilters.update(current => {
  current.materials = someMethodToGetResults();
  return current;
});

我错过了什么吗? RXJS 的学习曲线非常陡峭。 谢谢

没有这样的内置主题,但您可以构建自己的主题

export class StoreSubject extends BehaviorSubject {
   update(updateFn) {
     this.next(updateFn(this.getValue());
   }
}

用法:

const store = new StoreSubject(initialValue);
// .. later:
store.update(val => {
  // do something
  return val
});