【发布时间】:2016-07-06 07:51:18
【问题描述】:
我无法理解 observable 和观察者 (rxjs),我知道 observable 可以将消息发送给观察者,并且观察者订阅 observable,但我不知道如何设置?
假设我要请求URL,第一次用户调用“loadData”,数据是从http请求加载的,并保存在本地类中,下次用户调用“loadData”时,我们不想加载从http,但是在本地获取数据,但是我想使用相同的代码“loadData”,它应该返回Observer,所以开发人员不知道数据在哪里以及如何加载!
let data = [];
function loadData():Observer {
var observer = new Observer();
if (data.length > 0) {
var observable = new Observable.from(data);
observable.add(observer);
observable.notify();
} else {
var observable = this.http.get("data.json");
observable.add(observer);
observable.readyData( (data) => {
this.data = data;
observable.notify();
};
}
}
var observer = loadData();
observer.dataComing((data) => console.log(data));
任何解释或任何页面的链接都会很棒,我了解 Array 等中的 map filter reduce 以及观察者模式,这很简单,但不是 RXJS 方式,这非常令人困惑!
非常感谢!
【问题讨论】:
-
问题的新手,请查看observer 和observable 的Rx 文档。它非常简单和全面。
标签: javascript angular rxjs