如何解决chrome 取消 http 调用的问题
我有一个带有两个 http 调用的 rxjs 管道,我在 chrome 取消我的一个 http 请求时遇到了问题..
这里是 rxjs 管道和相应的 html:
来自组件:
userCtrl = new FormControl();
...
private initAutocomplete() {
const existingIds$: Observable<number[]> = this.contactService
.search()
.pipe(
map(contacts => contacts.map(c => Number(c.user.uid)))
);
this.userSearchResults$ = this.userCtrl
.valueChanges
.pipe(
startWith(''),filter((name: string) => name.length > 2),mergeMap((name: string) =>
this.contactService.autocomplete(this.buildSearchParams(name))
.pipe(
//Causes a canceled http request!!
withLatestFrom(existingIds$),map(([searchItems,existingIds]: [UserSearchItem[],number[]]) =>
searchItems.filter(
(value: UserSearchItem) => !existingIds.includes(value.id))
)
)
)
);
}
来自 html
<mat-autocomplete #auto="matAutocomplete">
<mat-option
*ngFor="let user of userSearchResults$ | async"
[value]="user.fullname"
(onSelectionChange)="handleSelect(user)"
>
{{ user.fullname }}
</mat-option>
</mat-autocomplete>
来自服务:
autocomplete(params: UserSearchParams): Observable<UserSearchItem[]> {
return this.http.post<UserSearchItem[]>(`${this.apiPrefix}/user/autocomplete`,params);
}
search(): Observable<Contact[]> {
return this.http.post<Contact[]>(`${this.apiPrefix}/bookmarks_user/search`,{});
}
谁能告诉我如何找出导致我的搜索请求被 chrome 取消的原因?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。