rxjs 相关问题

JavaScript的Reactive Extensions(RxJS)是一组库,用于使用可观察集合和Array Extras样式组合来编写异步和基于事件的程序。

一个 Rx 可观察对象将充当 ReplaySubject,但仅适用于第一个订阅者?

编写类似于 ReplaySubject 的 Rx observable 的优雅方式是什么,但只为第一个订阅者发出一次累积序列(当该订阅者连接时...

回答 2 投票 0

转换rxjs retry何时重试

我有以下依赖于 retryWhen 的代码片段,当 retryWhen 已弃用时,如何转换为重试。 返回 src.pipe( retryWhen((错误:Observable) => 错误...

回答 1 投票 0

如何在子组件Angular中使用observable通知父组件?

有这个父组件'SalesListComponent' 总销售量:R${{totalCashierDay}} 有这个父组件'SalesListComponent' <div class="container"> <div> <h3>Total Venda: R${{totalCashierDay}}</h3> <div *ngFor="let sale of salesListAggrouped" class="saleCard"> <app-modal-receipt [sales]="sale"></app-modal-receipt> </div> </div> </div> 它渲染了许多我在多个地方使用的子组件“ModalReceiptComponent”。 可视化(红色:父组件,绿色:子组件) 我正在尝试学习观察者并使用这种方法 export class HubService { sales_list: sales[] = []; constructor() { this.sales_list = getCachedSales(); } getSales() { const sales = of(this.sales_list); return sales; } addSale(sale: sales) { this.sales_list.push(sale); saveCacheSales(this.sales_list); } addSales(sale: sales[]) { this.sales_list = this.sales_list.concat(sale); saveCacheSales(this.sales_list); } editSales(sales: sales[]){ this.sales_list = sales; saveCacheSales(this.sales_list); } deleteSales(sales: sales[]){ this.sales_list = this.sales_list.filter(x => x.idDate !== sales?.[0]?.idDate); this.editSales(this.sales_list); } 使用“of”观察者方法处理销售列表中的 CRUD 的服务。 在'sales-list-component.ts'中只需订阅构造函数中的道具列表 export class SalesListComponent { salesList: sales[] = []; constructor(public dialog: MatDialog, private hubService: HubService) { this.hubService.getSales().subscribe(sales => { this.salesList = sales; }); } 在'modal-receipt-component.ts'中我在点击事件中使用了删除方法 deleteSales(){ this.hubService.deleteSales(this.sales); window.location.reload(); } } 问题是,在不重新加载整个页面的情况下,我无法识别 salesList 更新的事件和“重新渲染”父组件以更新新的 salesList 而无需删除记录。 有人可以帮助我吗? 到目前为止,只有 window.location.reload() 已经解决。 首先在父级中为构造函数中的代码创建一个新方法并在constructor上调用它,然后移动删除销售 export class SalesListComponent { salesList: sales[] = []; refreshSales() { this.hubService.getSales().subscribe(sales => { this.salesList = sales; }); } constructor(public dialog: MatDialog, private hubService: HubService) { this.refreshSales(); } deleteSales(sales: any){ this.hubService.deleteSales(sales); this.refreshSales(); } } } 然后你需要做一个事件发射器并从 html 触发事件 总销售量:R${{totalCashierDay}} <div *ngFor="let sale of salesListAggrouped" class="saleCard"> <app-modal-receipt [sales]="sale" (deleteEmitter)="deleteSales($event)></app-modal-receipt> </div> </div> 在子组件中,您需要触发发射器。 @Output() deleteEmitter: EventEmitter<any> = new EventEmitter<void>(); deleteSales(){ this.deleteEmitter.emit(this.sales); } }

回答 1 投票 0

如何使用 jasmine marbels 对可观察的计时器()进行单元测试

我正在尝试在角度应用程序中对 ngrx 效果进行单元测试,该效果使用计时器引入一些轮询逻辑,并根据某些选择器的值映射到某些操作。 我的代码类似于

回答 1 投票 0

订阅服务时取消http post

被这个错误困住了一个星期。无法使用 Angular HttClient 向 Heroku 服务器发送简单的 post 请求。在主应用程序模块的提供程序部分定义了所有服务。错误

回答 1 投票 0

Angular 13 api 调用中未定义响应模型参数

我正在 Angular 13/TypeScript 4.4.4 中使用 httpclient 进行 POST API 调用以进行用户身份验证。我可以检查响应模型内容,看起来没问题,但如果我访问模型的属性,我...

回答 3 投票 0

使用Subject时如何避免内存泄漏

在这里,我正在创建一个可观察对象,单击后我将取消它。如果我使用 Observable,这将取消订阅 observable 并清除间隔,但如果我使用 subject 则任何讨厌的函数......

回答 1 投票 0

Rxjs toPromise() 已弃用

我读到 toPromise() 在 RxJS 7 中已被弃用,并将在 RxJS 8 中被删除。 我经常将它与 Angular 中的 async wait 语法一起使用来处理 http 调用。这算是反拍吗...

回答 5 投票 0

rxjs 新股运营商似乎保持 Observable 热度

假设以下场景 const 测试 = of(4).pipe( tap(x => console.log("可观察到变暖")), 分享({连接器:()=>新的ReplaySubject(),resetOnComplete:假,

回答 1 投票 0

AngularBehaviorSubject 仅在组件加载时触发订阅一次

我有一项服务负责在组件之间切换侧导航 表单菜单服务 从 '@angular/core' 导入 { Injectable } ; 从'rxjs'导入{BehaviorSubject}; @Injectable() 出口类

回答 1 投票 0

在 Angular 中处理 API 请求的订阅内存泄漏

当我开始使用 Angular 时,我工作场所的某人告诉我在 RxJ 中使用可观察量执行 API 调用时使用 take(1),声称它会在一次 API 调用后自动取消订阅。 所以我

回答 1 投票 0

在其他组件(无父子)关系发生更改后触发一个组件

一旦我在 cites.component.ts 中进行更改,我想触发 Analysis.component.ts 中的更改 导航.service.ts @Injectable() 导出类导航服务{ 私人更新面包屑$:

回答 1 投票 0

等待可观察完成

我有一系列方法,这些方法依赖于其他方法的完成。 process1(数据:字符串):可观察 { this.dataservice.process(data).subscribe( (回应...

回答 6 投票 0

有没有办法使用计算出的角度信号的先前值?

我想将信号 A 中的每个新值添加到信号 B 的列表值中,类似于在 RxJS 中使用扫描运算符所做的事情。 理想情况下,我想要这样的东西:signalB =计算((值)...

回答 1 投票 0

RXJS 对键盘/鼠标点击组合做出反应

我对 RXJS 还很陌生。我想要实现的是当用户按下空格(或任何其他)键并用鼠标拖动元素时拖动 HtmlElement。 所以拖动的开始是trig...

回答 1 投票 0

当源流为“of”时,rxjs debouncetime 不起作用

考虑以下设置 的('x') 。管道( 开始('y'), 去抖时间(1000)) .subscribe(console.log); 演示版 它立即打印 valye 'x' 做同样的事情如下...

回答 1 投票 0

如何合并来自同一源的 2 个流

我想将单个 RxJs 流拆分为两个流并执行两个不同的异步任务,最后将这两个流合并回一个流。到目前为止我最好的解决方案是: 导入 { fromE...

回答 1 投票 0

RXJS 依赖的可观察量

我有3个观察值: 查询$ = this.q$.pipe(tap(() => this.page$.next(0)); filter$ = this.f$.pipe(tap(() => this.page$.next(0)); 页$ = 新的BehaviorSubject(0); 组合最新(...

回答 1 投票 0

Angular WebSocket 未尝试连接

我在go中设置了一个简单的WebSocket服务器,当我尝试在postman中连接到服务器时:(ws://localhost:3000/ws),它工作没有任何问题。但是当我在角度上做同样的事情时: 导入 {

回答 1 投票 0

读取路由参数不执行ForkJoin订阅

我为我的页面定义了以下路由: 常量路线:路线= [ { path: 'blog-posts/:postId', component: BlogPostComponent }, //这个 { 路径:'博客帖子',组件:BlogCompon...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.