rxjs中能不能更改Observable中的值?

有以下代码:

const x = of(false);
x.filter(value => value === true).subscribe((value) => {
    console.log(value) // true
    // TODO ajax request...
    
});


// 如何更改x中被观察的boolean值,使上面的console.log(value) 被打印出来?

阅读 4.3k
2 个回答

经过长时间接触rxjs,现在自己回答一下:

const x = new BehaviorSubject<boolean>(false);
x.filter(value => value === true).subscribe(value => {
    console.log(value);
    // TODO ajax
});
// 更改x中的值
x.next(true);

对于对象类型: 能,但是最好不要。我们一般把Rx发射的值当做不可变的, 如果一个对象的内容真的在传递中改变了, Rx也会把改变后的对象继续向下传递, 这破坏composability.

我们可以把一个Observable map出另一个。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进