Ошибка: свойство «подписка» не существует для типа «OperatorFunction <{}, {} | Заметный <any>> - PullRequest
0 голосов
/ 12 января 2019

Почему я не могу подписаться на результат оператора concat (), даже если он выглядит так же, как в документации и примерах на https://rxjs -dev.firebaseapp.com / апи / индекс / функция / CONCAT

Я уже пытался перейти на concatMap или concatAll, но у меня есть еще больше проблем. Это решение, безусловно, самое элегантное, которое я нашел.

ngOnInit() {
    const trendingRentals = this.rentalService.getRentals().pipe(delay(500));
    const commonRentals = this.rentalService.getCommonRentalsTest().pipe(delay(1000));
    const luxuryRentals = this.rentalService.getLuxuryRentalsTest().pipe(delay(1500));

    const concatenation =  concat( [trendingRentals, commonRentals, luxuryRentals]);
    concatenation.subscribe(
      //Print result
    )
  }

    //All get request are equal but with a different endpoint
    public getCommonRentalsTest(): Observable<any> {
      return this.http.get('/api/v1/rentals/common');
    }

Ускоренный результат приводит все арендные платы в порядок, а затем помещает их в массив результатов в том же порядке.

1 Ответ

0 голосов
/ 12 января 2019

Похоже, вам нужна «статическая» заводская функция вместо оператора concat :

// Find:
import { concat } from 'rxjs/operators';

// Replace:
import { concat } from 'rxjs';

Оператор используется с методом pipe другой наблюдаемой. Например:

const stream1$: Observable<any> = ...;
const stream2$: Observable<any> = ...;

const concatenated = stream1$.pipe(
    concat(stream2$)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...