代码之家  ›  专栏  ›  技术社区  ›  Sasha Tobin

什么是RxJS(redux observable)替代redux传奇中的最新版本?

  •  0
  • Sasha Tobin  · 技术社区  · 8 年前

    如果epic收到新操作,请停止处理旧操作。 一点背景:我有一部史诗,它会发出一些延迟动作。 如果epic收到新动作,我需要取消它们。

    Redux传奇效果正是我想要的: takeLatest

    1 回复  |  直到 8 年前
        1
  •  3
  •   Oles Savluk    8 年前

    这就是 .switchMap 操作员执行以下操作:

    将每个源值投影到合并到输出中的可观察值 可观察,仅从最近投影的可观察发射值。

    在本例中,您可以看到前面的 interval 新建后不再处理 click 到达:

    const clicks = Rx.Observable.fromEvent(document, 'click');
    const result = clicks.switchMap((ev) => Rx.Observable.interval(1000));
    
    result.subscribe(x => console.log(x));
    <script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>
    <button>send new click</button>