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,并将默认值设置为一个包含三个字符串的数组。我们使用

相关内容

热门资讯

透视总结(WPK)ai辅助神器... 透视总结(WPK)ai辅助神器(黑科技)ai辅助实战效果(竟然是有挂)是一款可以让一直输的玩家,快速...
黑科技ai代打(wePOke)... 黑科技ai代打(wePOke)有插件吗(黑科技)苹果下载网址(一贯真的是有挂)1、这是跨平台的黑科技...
黑科技插件(wePOke)软件... 黑科技插件(wePOke)软件免费版(黑科技)黑科技靠谱(好像是有挂)1、金币登录送、破产送、升级送...
黑科技辅助(微扑克)ai分析器... 黑科技辅助(微扑克)ai分析器(辅助挂)ai算牌器(切实是有挂);致您一封信;亲爱玩家:《透明挂》新...
透视玄学(WPk)外挂第一视角... 透视玄学(WPk)外挂第一视角(黑科技)德州ai辅助神器(本来有挂)1、不需要AI权限,帮助你快速的...
可靠辅助(微扑克)ai会被检测... 可靠辅助(微扑克)ai会被检测到吗(辅助挂)ai胜率(本来有挂);小薇(透视辅助)致您一封信;亲爱玩...
透视讲解(wPk)ai机器人会... 透视讲解(wPk)ai机器人会被封号吗(黑科技)ai辅助新手攻略(确实真的有挂)是一款可以让一直输的...
透视辅助(Wpk)透视辅助挂(... 透视辅助(Wpk)透视辅助挂(黑科技)有透视(原来有挂)1)辅助挂:进一步探索辅助透视大陆,与熟悉的...
透视系统(Wpk)发牌机制(黑... 透视系统(Wpk)发牌机制(黑科技)最新黑科技(一直是真的有挂)1、许多玩家不知道辅助软件怎么退出观...
透视线上(wPk)透视辅助有病... 自定义系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是想分享给你好...