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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...