Карта Rxjs только первое издание - PullRequest
0 голосов
/ 21 ноября 2018

Есть ли оператор, который позволяет мне отображать только первый излучатель?

что-то вроде

import { from } from 'rxjs';
import { mapFirst } from 'rxjs/operators';

const source = from([1, 2, 3, 4, 5]);
const example = source.pipe(mapFirst(val => val + 10));
//output: 11,2, 3, 4, 5

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Если вы хотите написать оператора земли-пользователя, чтобы сделать это:

import { OperatorFunction } from "rxjs";
import { map } from "rxjs/operators";

function mapFirst<T, R>(selector: (value: T) => R): OperatorFunction<T, T | R> {
    return map<T, T | R>((value, index) => (index === 0) ? selector(value) : value);
}

И вы будете использовать его, как у вас в вопросе.

0 голосов
/ 21 ноября 2018

Используйте first оператор или take(1)

const source = from([1, 2, 3, 4, 5]);
const example = source.pipe(first());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...