代码之家  ›  专栏  ›  技术社区  ›  Rachid O

RXJS仅映射第一次发射

  •  0
  • Rachid O  · 技术社区  · 7 年前

    有没有接线员可以让我绘制第一次发射的地图?

    类似的东西

    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 回复  |  直到 7 年前
        1
  •  1
  •   cartant    7 年前

    如果你想写一个用户土地运营商来做这件事:

    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);
    }
    

    你会用它来解决你的问题。

        2
  •  0
  •   Fan Cheung    7 年前

    使用 first 操作员或 take(1)

    const source = from([1, 2, 3, 4, 5]);
    const example = source.pipe(first());