【发布时间】:2018-01-10 13:38:08
【问题描述】:
我在地图上使用from 有一个简单的 RxJS 可观察对象:
当我在订阅 observable 后为地图设置新的键/值时,没有console.logs。当数据映射发生变化时,如何让 observable 更新,以便观察者将 console.log 更改?
我在这里遗漏了什么吗?我试过阅读文档和观看视频,但没有找到任何关于如何实现这一点的数据。谢谢
const data = new Map([['item1', value1], ['item2', 'value2'], ['item3', value3]]);
const data$ = Rx.Observable.from(data);
data$.subscribe(
(x) => {
console.log('OBSERVABLE X');
console.log(x);
},
(err) => {
console.log('OBSERVABLE ERR');
console.log(err);
},
(complete) => {
console.log('OBSERVABLE COMPLETE');
console.log(complete);
},
);
data.set('item3', 'value3');
【问题讨论】:
-
因为您没有将更新从 observable 推送到订阅者。这不是 observables 的运作方式
-
你是说不能设置 Observable 来监听 Map 上的变化,然后将变化推送给订阅者?
-
Observables 不会主动观察底层源的变化,如果你改变底层源,你必须告诉 observable 将变化广播给它的订阅者,查看
Subject和BehaviorSubject到做广播。想想看,observable 怎么会知道你背着它改变了源?
标签: javascript rxjs