• 如何使用RxJ限制Angular中的并发API请求

    我有一个Angular 7应用程序,可让您多次上传文件。对于选择的每个文件,它都会向服务器发出请求。这不是很好,因为对于我的后端服务器而言,打开数百个并发调用似乎是一个潜在的问题。 我想做的是限制我的应用程序可以发出的并发请求的数量。我有一个通用的API类,除了文件上传之外,我想用它来在整个应用程序范围内进行限制,而不是需要文件上传组件本身来管理它。 确实我有时会被RxJx弄糊涂,但是我很确定这是可能的。 class ApiService { get(path: string, params: a...
  • 订阅中如何返回地图的值?

    我试图返回“ cartProducts”并将其值应用于“ userCartProducts”,然后使用此变量在我的HTML中显示产品 但我无法使“ cartProducts”超出订阅范围。 我的代码: export class CartComponent implements OnInit { storeProductList$: Observable<IProduct[]>; userCart$: Observable<ICart>; user...
  • 离开温泉用户界面页面时退订可观察

    我有一个运行onsen ui的angular 2+应用程序,已经将一些组件设置为页面,并且正在使用ons-navigator在它们之间进行切换。 我遇到的问题是,当我在ons页面上订阅了一个可观察对象并且用户导航离开该页面时,该可观察对象仍然处于活动状态。使用Onsen导航器更改页面时,似乎没有调用ngOndestroy。 我想知道如何解决这个问题? 这是一些代码: import { Component, OnDestroy, OnInit } from '@angular/core'; import { ...
  • 如何将下面两个订阅的方法组合为一个方法,并将值分配给布尔变量?

    我有两种订阅的方法,我将它们分开放置。第二个订阅管道数据频率更改。我需要知道是否有任何方法可以结合这两种订阅方法并进行比较。我是该领域的绝对初学者,需要一些专家帮助来解决此问题。 isSameUnit(): boolean { //pipe one this.appStore.select(selectUnit). pipe(shareReplayUntil(this.destroySub)).subscribe( (u...
  • RxJS覆盖计时器/可观察的最佳实践

    我试图在服务发出新的到期时间时“重置”计时器。我覆盖了可观察的东西。我不确定是否应该“垃圾收集”可观察的对象,或者是否有更好的方法“重置”计时器。 这段代码可以正常工作,但是我不确定这是否是最佳做法 this.expiresAt = authService.expiresAt; if (this.expiresAt !== null) { this.sessionTimerSubscription = timer(this.expiresAt.getTime(...
  • 带有RxJS的Angular-订阅可观察对象时数组的reduce函数不起作用

    我有以下代码,并试图计算添加到购物车中的所有物品的总数。当我使用reduce时,我什么也没回来,但是在进行故障排除时,我在那儿添加了一个地图(注释掉了代码),并打印了一个值。我可以在此处添加更多代码,但您可以知道一切正常。我可以看到购物车中的数据是一个对象数组。我只需要迭代并计算总价格。 请指教。 this.store.select('cart').pipe(reduce((accumalatedTotal, cartItem) => accumalatedTotal + (cartItem.price),...
  • Angular-嵌套的REST API调用仅返回内部调用

    通过外部REST调用获取包含ShoppingCartItems的ShoppingCart,此后,对ShoppingCartItems的Observable进行内部调用,以使用提供程序增强ShoppingCartItems。 内部调用之后的轻敲(console.log)显示ShoppingCart的内容符合预期-通过提供程序增强了5个ShoppingCartItems。但是,点击订阅,将返回5个警报,每个警报包含我要添加的Provider作为ShoppingCartItem的属性。 看来我使用了错误的merg...
  • 如何在计时器(rxjs)中继续catchError

    我有一个服务,负责使用计时器每隔x秒执行一次httpClient.get。 每当服务启动时,我都需要此计时器才能开始运行,因此该计时器在服务构造函数中定义。根据我的理解,订阅应该在计时器范围内进行注册,如下所示(如果不需要,我不想更改它,除非它不正确)。 只要后端服务器没有错误\ exceptions \ error 500异常,所有系统都可以正常工作。 现在,我需要两件事: 每当后端服务器出现问题时,我都想捕获错误。 我希望观察者能够根据计时器时间(直到下一个滴答声)继续运行,即使有异常也是如此。 每当...
  • api调用在控制台中显示数据,但不在模板(Angular)中显示

    我有一个angular 8应用程序,并且我有一个返回console.log中数据的端点。 但是现在我当然想在模板中显示数据。但是div保持为空。 所以我有这个: result: WelcomePopup; ngOnInit() { this.updateScreenDimensions(); this.results$ = this.healthApiService.getWelcomePopupsByParticipant(); this.healthApiService.g...
  • 角度:在模板中绑定可观察值

    角度10 在我的组件中,我有一个简单的Observable: me$: Observable<User> = this.store.select((s) => s.user); 我希望显示user.firstName,但这是空白结果: <div>You are {{ me$.firstName | async }}</div> 如果使用此方法,它将起作用,因此我知道数据即将到来: me$ = this.store.select((s) => s.user.firstName);
  • Angular 9使用行为主体来回维护状态

    我有一个表单向导,所以我想来回移动,所以我要使用行为主题。但是单击后退按钮我没有得到以前的表单值。我不希望它存储在历史状态。请帮助我如何做到这一点。我已经创建了来回通用服务。如果我做错了事,请正确纠正我.Rxjs,但是回到page1时它具有最近的值,例如form2。我的期望是维护状态并使用rxjs修补表单值 FormComponent 2: <form [formGroup]="form2Back" (ngSubmit)="refresh()"> <input type="text" formC...
  • 角度可观察到的链式RxJ

    我使用RxJs 6.6.0和angular 9。 我有两个函数返回Observable <'Class 1'>和Observable <'number'>。 所以我习惯: funcA().subscribe(x=>{ // do something...}); funcB().subscribe(x=>{// do somethings..}); 但是我仅在funcA()完成时才需要调用funcB。我看到concat可能会有所帮助,但我无法得到像这样的两个答案 concat(funcA,funcB).s...
  • 如何在链式可观察物之间传递结果

    抽象问题:每次源Observable发出事件时,都需要触发一系列API调用和Angular服务。其中一些调用取决于以前的结果。 In my example, the source Observable startUpload$ triggers a series of depending invocations. 使用解构可以这样写: this.startUploadEvent$.pipe( concatMap(event => this.getAuthenticationHeaders(eve...
公告

《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

课程地址:https://www.shiyanlou.com/courses/1436
9折优惠邀请码: ZHwfIjb1

该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。