rxjs 相关问题

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

Angular 16 RxJS:不知道链API如何

我有一个干预表,要获取姓氏,我需要使用 familyId 进行另一个 api 调用 [ { “id”:14, “用户ID”:1, “家庭ID”...

回答 1 投票 0

如何让catchError返回网络错误?

这曾经工作得很好,但 throwError 已被弃用,现在 catchError 似乎不再返回我过去收到的网络错误。 this.goToApi().subscribe(响应 => { 安慰...

回答 1 投票 0

React Native FlatList 行对齐问题

我正在使用 FlatList 在屏幕上呈现数组。对于一个用例来说,它工作得很好。我遇到的问题是,当我连续的项目少于 4 个时,它的呈现会有所不同。 哈...

回答 3 投票 0

测试使用 Jest 和 Angular 更新主题的 Http 请求

我试图了解如何测试观察$以及_观察是否已更新。 //这是我要测试的函数 公共createNewOdour(气味:OdourCreateForm):Observable<

回答 1 投票 0

执行一个操作,两个不同的 RxJS 观察者会得到 1 个结果

我有两个不同的观察者,在获得每个观察者的第一个结果后,我执行一个操作: 观察者1 专业$.订阅( (值)=> { this.specialtiesOptions =

回答 2 投票 0

使用 OnPush 更改检测时未检测到状态更改?

试图找出为什么 OnPush 更改检测策略在此演示中不起作用。 如果我理解正确的话,当属性引用更改时应该触发 OnPush 更改检测。并在

回答 1 投票 0

Angular/RxJS:同步可观察

我有一个具有方法 foo 的服务。在方法内部,我订阅了一个可观察的(http-client)。 foo():布尔值 { 让 ret : false; this.http.get("/blabla").subscribe( (分别)=>...

回答 1 投票 0

在常规express.js中间件中使用rxjs observable

我正在与 RxJS 作斗争,不幸的是它正在我的项目中使用。 我有一个可观察的 getSettings(req) ,我想在常规的express.js 中间件中使用它,如下所示: 中间件...

回答 1 投票 0

依次发出一个可观察值

我有 2 个可观察对象正在加载,但当 paged$ 加载速度比firstLoad$ 快时,它们的顺序不正确。我该如何纠正这个问题? of(firstLoad$, 分页$) 。管道( mergeMap((c...

回答 2 投票 0

RxJS 将数组映射到可观察对象并返回到数组中的普通对象

我有一个对象数组,我需要将每个对象分别传递到异步方法中(后面的过程使用 Promise 处理,然后通过 Observable.fromPromis 转换回 Observable...

回答 1 投票 0

展平嵌套可观察量

我的嵌套可观察对象有以下代码块,并且正在尝试获取可观察对象,但该代码没有执行此操作: 返回 this.findUser(term).map( 用户 => { 返回用户....

回答 3 投票 0

如何在 Angular 服务中制作同步方法?

我有一个 Angular 15 应用程序,其中有一些组件调用服务方法从后端检索一些数据。在执行之前,服务会检查是否有请求...

回答 1 投票 0

模板中的 Angular 异步管道,通过方法返回长期可观察的结果

我在下面发现了一些有趣的代码。 根据AsyncPipe的描述 异步管道订阅 Observable 或 Promise 并返回其发出的最新值。当一个新值是 e...

回答 1 投票 0

对流中的项目进行缓冲和排序

我收到来自可观察对象的消息。 这些有时不按时间顺序排列,但它们的值包括时间戳。 现在我想缓冲和排序元素。 不,可能有这条流...

回答 1 投票 0

如何在表单编辑数据后自动刷新数据?

我有一个包含数据的部分,我添加了一个按钮来编辑数据。我点击按钮编辑数据,我在表单中编辑数据,但是该部分的数据没有自动刷新,我有...

回答 1 投票 0

在BehaviorSubject上使用getValue()是不好的做法吗?

Ben Lesh 和 Angular 大学在 BehaviourSubject 上的立场相互矛盾。 我对以下内容感到困惑。我从 Ben Lesh 本人那里读到,在行为主题上使用 getValue() 是一个 h...

回答 1 投票 0

绑定到 BehaviourSubject 中的下一个函数有什么问题

背景 我试图测试我的 authService.getUserProfile() 函数,如下所示 私有 authUserSubject$ = 新BehaviorSubject(null); authUser$ = 这个。

回答 1 投票 0

对从不活动状态中注销用户的功能进行单元测试

使用 Angular/Jasmine/Karma 我正在测试一个在 ngOnInit 中运行的函数,该函数将在 15 分钟不活动状态下注销用户。 这是原始代码: #setSessionTimeout() { 常量点击...

回答 1 投票 0

停止角度材质自动完成更新输入

我正在创建一个国家/地区自动完成输入。我想使用 ControlValueAccessor 接口将输入抽象到组件中。我想用这个组件来获取FormControl 我正在创建一个国家/地区自动完成输入。我想使用 ControlValueAccessor 接口将输入抽象到组件中。我想使用这个组件来获取 FormControl<string | null>,其中 string 是 ISO_3166-2 字符串,null 表示不选择。 组件中主要分为三个部分: 选项列表(已过滤)- {code: string; name: string;}[] 所选值(选择后更改输入)- string | null 输入值(自由文本,更改时将所选值设置为 null)- FormControl<string> 目前,当用户选择自动完成项时,会将输入的 FormControl<string> 设置为所选对象(例如 {code: 'US', name: 'United States'}),这显然不是 FormControl<string> 类型。有没有办法完全分开处理自动完成选择和输入值? 这是一个示例:https://stackblitz.com/edit/angular-ivy-ju6qw9?file=src/app/country-input/country-input.component.ts 在此示例中,我使用 FormControl<Country> 而不是 FormControl<string> 作为输入值,但我仍然没有得到所需的结果,因为在用户输入自由文本后,FormControl 在运行时是字符串。为了简单起见,还省略了过滤功能。 有没有办法完全分开处理自动完成选择和输入值? 您可以使用 optionSelected 中的 mat-autocomplete。这是一个事件发射器,仅在选择该选项时才会发射。这使您可以管理何时更新 selected 的值。 示例.component.html <mat-form-field> <input matInput [formControl]="selected" [matAutocomplete]="auto" value=""/> <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn" (optionSelected)="onOptionSelected($event)"> <mat-option *ngFor="let country of countries" [value]="country"> {{country.name}} </mat-option> </mat-autocomplete> </mat-form-field> 示例.component.ts @Component({ ... }) export class ExampleComponent { ... public onOptionSelected(event: MatAutocompleteSelectedEvent) { console.log(event.option.value); // do something with the value here. } } 您可以为 AutocompleteInputDirective 的输入字段实现您自己的 mat-autocomplete,您可以在其中提供 NG_VALUE_ACCESSOR 和 MatFormFieldControl。 然后,您可以侦听 HostElement(HTMLInput 元素)上的 input 事件,还可以订阅 optionSelected 的 matAutocomplete 可观察值(您可以通过使用像 input[myAutocompleteInput][matAutocomplete] 这样的选择器来要求它)。 现在您可以区分用户输入的搜索查询值(可以发送到专用事件发射器)和实际选择的选项值,后者可以发送到 FormControl(_onChangeFn 来自 ControlValueAccessor)。 无论您使用对象作为值还是特定的字符串值(枚举、isoCodes),都没有关系 - 只有“实际”值或 null 会被设置到 FormControl。 此外,MatFormField/MatLabel 将正确显示源 FormControl 的错误状态,并在需要时将 * 添加到标签。 这样使用: <mat-form-field> <mat-label>My Autocomplete</mat-label> <input type="text" myAutocompleteInput [formControl]="myFormCtrl" (query)="filter($event)" [matAutocomplete]="autocomplete" /> <mat-autocomplete #autocomplete="matAutocomplete">...</mat-autocomplete> </mat-form-field> 指令... 为用户搜索查询提供 EventEmitter query 选择选项时设置myFormCtrl上的值 当用户更改输入字段值时,在 myFormCtrl 上设置 null 参见 stackblitz - 可能会有所帮助 MatChipGrid本质上是做同样的事情来防止发出普通的用户查询。我感到惊讶的是,Angular Material 仍然没有为 MatAutocomplete 提供这样的解决方案🤷u200d♂️。 当输入获得焦点时,您可以使用 MatAutocompleteTrigger 在显示之前更改值。 这不是一个很好的解决方案,但我希望它能有所帮助。 模板: <mat-form-field> <input matInput [matAutocomplete]="auto" [formControl]="fcInput" #autoCmpTrigger="matAutocompleteTrigger" (focus)="onInputFocus(autoCmpTrigger)"> <mat-autocomplete #auto> <mat-option *ngFor="let country of countries" [value]="country"> {{country.name}} </mat-option> </mat-autocomplete> 组件: countries: Country[] = ...; fcInput = new FormControl<String|null>(null); onInputFocus(autocompleteTrigger: MatAutocompleteTrigger): void { if (this.fcInput.value instanceof Object) { let country: Country = <Country>{}; Object.assign(country, this.fcInput.value); this.fcInput.setValue(country.name); } }

回答 3 投票 0

当可观察到的变化时,异步管道不更新视图

我有一个保存行为主体的全局服务。行为主体存储一个数组。我有一个过滤器组件,它发出该数组的新版本,我可以看到全局的变化

回答 1 投票 0

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