【发布时间】:2017-12-04 21:44:22
【问题描述】:
我正在尝试从 Angular 2 中的 Observables 提供的订阅选项从 ngrx 存储中获取数据(对象数组)并分配给一个数组,但问题是当我尝试读取数组的内容时。以下是sn-p的代码->
metaData$: Observable<MetaClassDefinition[]>;
myArray: MetaClassDefinition[] = [];
constructor(private store: Store<fromRoot.State>) {
this.metaData$ = store.select(fromRoot.getMetadata);
}
this.metaData$.subscribe(
data => {
if (data.length > 0) {
// Deep copy array
data.forEach(v => this.myArray.push({...v}));
}
},
error => { console.log(error)}
);
console.log(this.myArray); //-------(1)
console.log(this.myArray.length); //-------(2)
现在,第一个 console.log 像这样打印对象数组 ->
但是,我们尝试打印第二个 console.log,我得到数组的大小为零。 我在这里有什么遗漏吗?
【问题讨论】:
-
由于 Observable 是异步的,所以长度为零
标签: angular typescript