Я использую Angular 2, и я заметил неожиданное поведение.
У меня есть класс источника данных, который расширяет DataSource, с двумя переменными:
private archives = new BehaviorSubject<MyArchive[]>([]);
public archives$: Observable<MyArchive[]> = this.archives.asObservable();
private filteredArchive: MyArchive[];
Я обновляю архивы таким образом в классе:
this.archives.next(this.filteredArchive);
В другом классе я пытаюсь подписаться на наблюдаемое, но это не работает:
ngAfterViewInit(): void {
this.dataSource.archives$.subscribe((archive: Array<MyArchive>) => {
console.log(archive.length);
console.log(archive);
console.log(archive.length);
}
}
В журнале консоли выводится:
0
<THE ARCHIVE WITH AN OBJECT INSIDE AS IT SHOULD BE, WITH LENGTH = 1>
0
Так что я не могу перебрать архивную переменную, потому что ее длина равна 0. Что здесь происходит?