angular - 从 Observable 转移到 BehaviorSubject
问题描述
我有和可观察的和它的条件:
let data$: Observable<DataModel[]>;
this.httpClient.get<DataModel[]>>(`data`)
.pipe(map((result: DataModel[]>) => this.data$ = result));
let result: boolean = this.data$.pipe(
map(x => x.find(y => y.child.some(z => z.id == id))),
map(x => x ? ['B'].some(y => y === x.child.find(z => z.id == 2)) : false));
我现在data$
从Observable<DataModel[]>
to改变BehaviorSubject<DataModel[]>
并习惯于this.data$.next(result)
设置data$
值。
let data$: BehaviorSubject<DataModel[]>;
this.httpClient.get<DataModel[]>>(`data`)
.pipe(map((result: DataModel[]>) => this.data$.next(result));
let result: boolean = this.data$.pipe(
map(x => x.find(y => y.child.some(z => z.id == id))),
map(x => x ? ['B'].some(y => y === x.child.find(z => z.id == 2)) : false));
使用 BehaviorSubject 时出现错误this.data$.pipe(
undefined is not an object (evaluating 'this.data$.pipe')
我错过了什么?
解决方案
你应该初始化你的BehaviorSubject
let data$ = new BehaviorSubject<DataModel[]>(INITIAL_VALUE or undefined);
推荐阅读
- python - Python surface fitting of variables of different dimensionto get unknown parameters?
- vue.js - VueJS with vue-socket-io not displaying anything
- load-testing - 与 Microsoft 全球学习组相关的站点的应用程序洞察力的 Web 性能负载测试错误
- c# - C# While 循环使用 nTh 循环
- python - 确定 CPU 利用率的时间
- node.js - Node.js 显示索引页面而不是请求页面
- javascript - 如何使用 Angular Material DragAndDrop 设置可拖动元素的默认位置?
- tableau-api - Tableau 连接符合条件的字段
- rabbitmq - PCF 上 RabbitMQ 的 Spring AMQP 陈旧消费者
- javascript - 如何在 JavaScript 中复制指针事件的行为:无