微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript 事件处理程序不断调用 WebAssembly 函数

如何解决JavaScript 事件处理程序不断调用 WebAssembly 函数

最近我遇到了一个奇怪的错误,我不确定这是我的代码错误还是 JS/Rust Web Assembly 中的问题。

长话短说,我一直在尝试从 js 事件处理程序调用 Web 程序集异步函数,由于某种原因,该事件不断触发无限次。例如,对于 'keydown' 事件,一旦您按下某个键,该处理程序将被调用(您可以松开该键,但它仍然认为您正在按下它),直到您切换 Tab。

代码示例:
防锈功能

[wasm_bindgen]
pub async fn test() {
     await something();
}

js 代码

import the wasm...

document.addEventListener('keydown',keyDownHandler,false)

function keyDownHandler() {
    test();
}

你建议我做什么?我应该将其报告为 wasm 社区中的错误吗?也许你有办法给我?

解决方法

我终于根据您的意见解决了问题,非常感谢!

我做的是使用节流技术,你也可以尝试去抖动技术。

很好的article,比我更好地解释了这两种技术。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。