过滤可观察到的映射可观察完成

时间:2018-11-20 07:43:13

标签: rxjs

我有什么?

var click = fromEvent(button, 'click');

var animation = from([]).pipe(
    concat(
        animateDiv(300, 600),
        animateDiv(-300, 600),
        animateDiv( 300, 300),
        animateDiv(-300, 300)
    ));

click.pipe(
    flatMap(() => animation),
).subscribe();

每个animateDiv()返回一个Observable,该对象在动画结束后即完成。我使用“ concat()”将它们链接在一起。

所以现在我不想在另一个动画链仍在运行时在“ click”上启动另一个动画...

实现此目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

找到了解决方案:audit

var animation = concat(
    animateDiv(300, 600),
    animateDiv(-300, 600),
    animateDiv(300, 300),
    animateDiv(-300, 400),
);

click.pipe(
    audit(() => animation)
).subscribe();