rxjs 6 - наблюдаемыйНаблюдаемым <Objects> - PullRequest
0 голосов
/ 30 мая 2018

У меня есть наблюдаемое, которое испускает массив объектов.Какие операторы в конвейере мне нужно использовать, чтобы преобразовать их в Observable, чтобы я мог воздействовать на каждый объект?

Что мне нужно сделать для obs $, чтобы он излучал как obs2 $?

const obs$ = of([{ opponent: 'Walton', team: 'varsity', gametime: new Date() },
{ opponent: 'Scott', team: 'varsity', gametime: new Date() },
{ opponent: 'Dixie', team: 'varsity', gametime: new Date() },
{ opponent: 'Highlands', team: 'freshmen', gametime: new Date() }])
  .pipe(
    tap(console.log)
  );

obs$.subscribe(a =>
  console.log(a)
);

const obs2$ = of({ opponent: 'Walton', team: 'varsity', gametime: new Date() },
  { opponent: 'Scott', team: 'varsity', gametime: new Date() },
  { opponent: 'Dixie', team: 'varsity', gametime: new Date() },
  { opponent: 'Highlands', team: 'freshmen', gametime: new Date() })
  .pipe(
    tap(console.log)
  );

obs2$.subscribe(a =>
  console.log(a)
);

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Просто используйте from Наблюдаемый:

import {Observable, from } from 'rxjs';
// Write TypeScript code!

const myDatas = [{ opponent: 'Walton', team: 'varsity', gametime: new Date() },
{ opponent: 'Scott', team: 'varsity', gametime: new Date() },
{ opponent: 'Dixie', team: 'varsity', gametime: new Date() },
{ opponent: 'Highlands', team: 'freshmen', gametime: new Date() }];

from(myDatas).subscribe(e => console.log(e));

живой образец

0 голосов
/ 30 мая 2018

Вам нужно mergeAll:

of([2, 3, 4]).pipe(
  mergeAll()
).subscribe(v => console.log(v));
// outputs 2, 3, 4

Если вы используете from, это тоже будет работать:

from([2, 3, 4])
  .subscribe(v => console.log(v));
// outputs 2, 3, 4
...