Объедините две наблюдаемые в одну наблюдаемую так, чтобы значения запускались только для одной наблюдаемой - PullRequest
0 голосов
/ 15 октября 2019

Я хочу объединить две наблюдаемые типа T[], возвращаемые из httpservice.

Я пробовал forkjoin и zip, но они возвращают Observable типа [T[], T[]], и я хочу вернуть объект типа T[] как показано в коде ниже. Есть ли способ сделать это в угловых 7?

Пожалуйста, помогите мне это нужно для моей работы.

public getSelectFlux(value): Observable<SelectAutocompleteModel[]> {
  if (!this.isFluxAuto) {
    return forkJoin(this.selectAutoCompleteService.selectedFlux(
      this.getInstance(value, false)), this.selectAutoCompleteService.selectedFlux(this.getInstance(value, true)));
  }
  return this.selectAutoCompleteService.selectedFlux(this.getInstance(value, false));
}

1 Ответ

0 голосов
/ 15 октября 2019

Вам нужен оператор merge . Оператор слияния объединит две наблюдаемые и вернет одну наблюдаемую, для которой будут сгенерированы оба наблюдаемых значения.

Ваш код будет выглядеть так:

public getSelectFlux(value): Observable<SelectAutocompleteModel[]> {
  if (!this.isFluxAuto) {
    return merge(
      this.selectAutoCompleteService.selectedFlux(this.getInstance(value, false)),
      this.selectAutoCompleteService.selectedFlux(this.getInstance(value, true))
    )
  }
  return this.selectAutoCompleteService.selectedFlux(this.getInstance(value, false));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...