Angular热observables和RxJS:数组的更改未发出给订阅者
创始人
2024-10-29 05:00:19
0

在 Angular 中,当我们使用 RxJS 来处理 Observable 时,有时我们会遇到热 observables 中的一些问题,如订阅者未能接收到对数组的更改。这是因为数组是对象,并且在 RxJS 中,对象是通过引用传递的,因此当我们更改数组时,它的引用仍然相同,而热 observable 不会自动地将更改推送给订阅者。

为了解决这个问题,我们可以使用 BehaviorSubject。BehaviorSubject 和普通的 Subject 是相似的,但是它会记录最新的值,并在订阅时将其推送给订阅者。因此,当我们使用 BehaviorSubject 时,订阅者在订阅时将收到最新的值,而不是最初的值。

下面是一个使用 BehaviorSubject 解决这个问题的例子:

import { Component, OnInit } from '@angular/core';
import { BehaviorSubject } from 'rxjs';

@Component({
  selector: 'app-example',
  template: `
    
    
  • {{ item }}
`, }) export class ExampleComponent implements OnInit { items$ = new BehaviorSubject(['item 1', 'item 2', 'item 3']); ngOnInit() { // subscribe to the BehaviorSubject this.items$.subscribe(items => console.log(items)); } addItem() { // get the current value of the BehaviorSubject const currentItems = this.items$.value; // create a new array with the new item added const newItems = [...currentItems, `item ${currentItems.length + 1}`]; // update the BehaviorSubject with the new array this.items$.next(newItems); } }

在这个例子中,我们创建了一个 BehaviorSubject,并将默认值设置为一个包含三个字符串的数组。我们使用

相关内容

热门资讯

据通报!hhpoker透视方法... 据通报!hhpoker透视方法,黑桃k大厅辅助,模板教程(存在有挂)黑桃k大厅辅助透视方法中分为三种...
日前!德普之星辅助工具如何设置... 日前!德普之星辅助工具如何设置,桂林字牌辅助科技,策略教程(揭秘有挂)1、金币登录送、破产送、升级送...
2026版总结!wepoker... 2026版总结!wepoker手机版辅助,杭州边锋网络游戏辅助,绝活儿教程(有挂教学)1、每一步都需...
2026版规律!pokemmo... 2026版规律!pokemmo手机版修改器,枫叶辅助官网地址,办法教程(了解有挂)1、完成枫叶辅助官...
今天下午!pokemmo脚本最... 您好,楚天游辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在这...
截至目前!wpk有那种辅助吗,... 截至目前!wpk有那种辅助吗,皮皮四川麻辣,资料教程(有挂规律)1、很好的工具软件,可以解锁游戏的皮...
推出新举措!pokerworl... 推出新举措!pokerworld辅助器,情怀宜春挂,秘籍教程(有挂规律)1、情怀宜春挂免费脚本咨询教...
连日来!如何下载德普之星辅助软... 连日来!如何下载德普之星辅助软件,皮皮四川麻辣,方针教程(确实有挂);连日来!如何下载德普之星辅助软...
此事备受玩家关注!拱趴大菠萝自... 此事备受玩家关注!拱趴大菠萝自动计算机器人,雀友会广东潮汕苹果脚本,操作教程(有挂猫腻);1.雀友会...
针对!hhpoker视频巡查真... 针对!hhpoker视频巡查真的假的,牵手互动游戏辅助,手筋教程(有挂教程)1、牵手互动游戏辅助透视...