Пример Rxjs concat - PullRequest
       6

Пример Rxjs concat

0 голосов
/ 07 марта 2019

Некоторое время назад использовал rxjs, но не понимаю некоторых вещей, одна из которых - concat. Пример с сайта rxjs :

    const sourceOne = of(1, 2, 3);
    //emits 4,5,6
    const sourceTwo = of(4, 5, 6);
    //emit values from sourceOne, when complete, subscribe to sourceTwo
    const example = sourceOne.pipe(concat(sourceTwo));

но в моем угловом проекте это выдает ошибку:

TS2345: Argument of type 'Observable<number>' is not assignable to parameter of type 'OperatorFunction<number, {}>'.
      Type 'Observable<number>' provides no match for the signature '(source: Observable<number>): Observable<{}>'.

Не уверен, почему, кто-нибудь может просветить меня? Спасибо.

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Вы неправильно импортируете concat.Вы хотите использовать его как оператор, поэтому вам нужно импортировать

import { concat } from 'rxjs/operators';

Вы импортируете concat из 'rxjs', который является наблюдаемым методом создания, а не оператором.

Это будет переименовано в более поздней версии RxJS, потому что это слишком вводит в заблуждение: https://github.com/ReactiveX/rxjs/issues/3927

1 голос
/ 07 марта 2019

Пример работает отлично. Я воссоздал его на stackblitz: https://stackblitz.com/edit/rxjs-6z6pjk?file=index.ts

Код:

import { of } from 'rxjs';
import { map, concat } from 'rxjs/operators';

const sourceOne = of(1, 2, 3);
//emits 4,5,6
const sourceTwo = of(4, 5, 6);

//emit values from sourceOne, when complete, subscribe to sourceTwo
const example = sourceOne.pipe(
  concat(sourceTwo))
  .subscribe(x => console.log(x));

package.json

{
  "name": "typescript-5i4anz",
  "version": "0.0.0",
  "private": true,
  "dependencies": {
    "rxjs": "6.4.*"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...