是否有一个运算符可以让我仅映射第一个发射?
类似
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
答案 0 :(得分:1)
如果您要编写用户土地运营商来这样做:
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);
}
然后您将在问题中使用它。
答案 1 :(得分:0)
使用first
运算符或take(1)
const source = from([1, 2, 3, 4, 5]);
const example = source.pipe(first());