Observables
非常新,如果这是基本的道歉,但我尝试使用Google搜索,似乎无法找到我想要的内容。
这是一个非常基本的例子 https://plnkr.co/edit/kgECPQyoKqY7RamebUUu?p=preview
为什么我的Initialized
方法在我的服务调用之前不会被调用?我认为initialized
可观测量会在我Observable.forkJoin
后立即执行。我需要以某种方式开始这个过程吗?
为什么我的myService.loadOtherData
方法似乎永远不会调用subscribe方法???
提前致谢
答案 0 :(得分:0)
如果你是Observables的新手,我建议你先从一个基本的例子开始。
例如:(伪代码,也许)
let observable = new Observable<string>(observer => {
if (1 == 1) {
observer.next("one is one");
} else {
observer.error("one is not one");
}
});
observable.subscribe(
response => console.log(response),
error -> console.log(error)
);
使用主题更加相同,但主题可以更自由地使用:
let subject = new Subject();
subject.subscribe(response -> console.log(response));
subject.next('hello');
我相信我看到你将两者结合起来,订阅主题,然后用可观察的数据获取数据?通过这些示例,您是否有足够的信息,或者您是否需要一个非常具体的示例?
编辑:
你的this.initialized.subscribe
'开始了这个过程'。
你调用loadOtherData函数太晚了,这使你在数据返回时没有订阅this.initialized。这就是你没有看到console.log('initialized')
EDIT2:
请注意BehaviorSubject
保存数据并在订阅时返回。无需使用空字符串对其进行初始化。