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

相关内容

热门资讯

一分钟揭秘!河洛刚次辅助,衢州... 一分钟揭秘!河洛刚次辅助,衢州都莱辅助器,分享开挂辅助教程(有挂分析)1、下载安装好衢州都莱辅助器,...
推荐十款!吉安中至小程序微信辅... 推荐十款!吉安中至小程序微信辅助,捉住捣蛋鸡作弊,推荐开挂辅助教程(有挂技巧)1、下载安装好吉安中至...
实测发现!胡易辅助软件,决战卡... 您好:决战卡五星作弊这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
揭秘几款!四川麻将血战如何开挂... 揭秘几款!四川麻将血战如何开挂辅助,wepkerplus辅助,必看开挂辅助教程(有人有挂)1、下载安...
重大推荐!对战互娱有辅助器吗,... 您好:对战互娱有辅助器吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的...
一起来讨论!悠悠互娱辅助,新道... 一起来讨论!悠悠互娱辅助,新道游开挂,实测开挂辅助教程(有挂规律)1、下载安装好悠悠互娱辅助,进入游...
避坑细节!微信边锋干橙眼辅助,... 避坑细节!微信边锋干橙眼辅助,老友广东辅助工具,正品开挂辅助教程(确实有挂);无需打开直接搜索薇:1...
必备辅助推荐!诸暨翻财神攻略,... 必备辅助推荐!诸暨翻财神攻略,四川家园辅助软件,详细开挂辅助教程(有挂分享);无需打开直接搜索加(薇...
传递经验!小程序财神十三脚本,... 您好:小程序财神十三脚本这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的...
记者发布!小程序卡五星辅助,顺... 记者发布!小程序卡五星辅助,顺欣茶楼开挂,原来有开挂辅助教程(详细教程);无需打开直接搜索打开薇:1...