- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于某种原因,使用 Tap 运算符会改变流的输出(实际上提供了我预期的结果)。当我移除水龙头时,后续过滤器似乎不再起作用。
我已经在codesandbox上使用
运行了下面的代码 tap(([prevMouseEvent, currentMouseEvent]) =>
console.log(directionChange(prevMouseEvent, currentMouseEvent))
),
包含并注释掉。如果没有点击,后续过滤器似乎无法工作,并且我会得到持续的配对鼠标事件流。
// Returns true if the predominant movement in the mouse has changed direction
const directionChange = (prevMouseEvent, currentMouseEvent) => {
const dominantAxisMovement =
Math.abs(currentMouseEvent.movementX) >
Math.abs(currentMouseEvent.movementY) ? "X" : "Y";
if (dominantAxisMovement === "X") {
return (
Math.sign(currentMouseEvent.movementX) !==
Math.sign(prevMouseEvent.movementX)
);
} else {
return (
Math.sign(currentMouseEvent.movementY) !==
Math.sign(prevMouseEvent.movementY)
);
}
};
const mouseDirectionSwitch$ = fromEvent(document, "mousemove").pipe(
pairwise(),
tap(([prevMouseEvent, currentMouseEvent]) =>
console.log(directionChange(prevMouseEvent, currentMouseEvent))
),
filter(([prevMouseEvent, currentMouseEvent]) =>
directionChange(prevMouseEvent, currentMouseEvent)
)
);
mouseDirectionSwitch$.subscribe(passed => console.log(passed));
我想要实现的是一个仅在用户改变鼠标移动方向时发出的可观察对象(我所说的改变移动是指从上到下、从左到右,而不是细微的变化)。使用水龙头它可以工作,但任何人都可以解释为什么这里需要水龙头运算符(operator)才能获得所需的输出?我认为 tap 运算符返回了相同的可观察值,因此对其所在流的输出没有影响。
最佳答案
感谢您的建议。雅各布 - 你的建议让我在自己的独立项目中重新创建了这个......并且效果很好。所以我关闭了所有东西并重新打开了原来的项目,结果发现它成功了。我真的不确定为什么它以前不起作用(尽管刷新整个页面以刷新任何剩余的事件处理程序),但古老的“您是否尝试过重新启动计算机”是我真正需要的。感谢您的想法!
关于javascript - 为什么水龙头运算符(operator)会影响水流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58775174/
我有一个带有四 (4) 个 TabBarItems 的 TabBarController ...我如何处理每个 TabBarItem 以便我可以捕获被点击的事件? 最佳答案 将委托(delegate)
这个问题源于我之前的问题dismiss keyboard on tapping on any UIControl object . 因此,当用户有键盘时,我希望用户能够点击键盘或 UITextView
我是一名优秀的程序员,十分优秀!