rxjs - 在 takeUntil 之后做一些 Action

标签 rxjs

我在听 mousemove事件直到mouseup .我正在做 takeUntil .

我的代码:

    const onMouseMove = fromEvent(window, "mousemove");
    const onMouseUp = fromEvent(window, "mouseup");

    const resizePanel = onMouseMove
        .pipe(
            takeUntil(onMouseUp),
            map(
                (event: MouseEvent) => {
                    this.isDragging = true;
                    this.resizePanel(event.clientX);
                }
            )
        );

我有一个变量 isDragging: boolean ,我想设置为 false , 当 mouseup发生,例如后 takeUntil在我的代码中。它一定很简单,但我无法弄清楚。

最佳答案

你可能想尝试这样的事情

const onMouseMove = fromEvent(window, "mousemove");
const onMouseUp = fromEvent(window, "mouseup");

const resizePanel = onMouseMove
    .pipe(
        takeUntil(onMouseUp.pipe(tap(() => this.isDragging = false))),
        map(
            (event: MouseEvent) => {
                this.isDragging = true;
                this.resizePanel(event.clientX);
            }
        )
    );

这个想法是添加一个 pipetap运营商到 onMouseUp用作 takeUntil 的参数

关于rxjs - 在 takeUntil 之后做一些 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52886276/

相关文章:

javascript - 主题上的 rxjs debounceTime

Angular 组件 - 封装 BehaviorSubject 的输出

angular - 通过项目的可观察属性将可观察数组过滤为另一个可观察数组(另一种类型)

javascript - subscribe 和 catch 运算符中的 onError 有什么区别?

javascript - 组合 RXJS 可观察量,但等待第一个开始发出值

javascript - RxJS:带有数组的JSON数据,进一步处理流中的每个项目

angular - 当 api 返回 404 时,Observable Completed 不会被调用,当 api 失败时,有其他解决方案吗?

typescript - rxjs forkJoin Observable<never> 不可分配给 OperatorFunction<nerver> 类型的参数

rxjs - 每当另一个 Observable 发射时跳过来自源的下一次发射的运算符

node.js - 将 ngrx/Store 集成到现有的 Angular 项目中