我使用选择器从ngrx获取数据
schedules$ = this.store.pipe(select(selectSchedulingsTimes));
然后在可观察的
上的Oninit I管道中ngOnInit() {
this.store.dispatch(new GetSelectedItem());
this.store.dispatch(new GetSchedules());
let data = this.schedules$.pipe(
map((elm: ISchedule[]) => {
return elm.map((elm: ISchedule) => {
return { tp_org_r: elm.tp_org_r, tp_des_r: elm.tp_des_r };
});
})
);
}
我永远都不会进入map
我不知道为什么?
答案 0 :(得分:1)
因为let data
是冷的可观察到的,并且只有在调用subscribe方法后才会触发。
进一步了解Hot vs Cold Observables
data.subscribe(console.log)
Observable何时开始发出其项目序列?这取决于可观察的。一个“热门”可观察对象可能会在创建后立即开始发射项目,因此以后订阅该可观察对象的任何观察者都可以开始观察中间位置的序列。另一方面,“冷”的Observable会等到观察者订阅它之后才开始发射项目,因此可以保证这样的观察者从一开始就可以看到整个序列。
在ReactiveX的某些实现中,还有一个称为“可连接”的可观察对象。这样的Observable直到调用其Connect方法时才开始发出项目,无论是否有任何观察者已订阅它。