小编Rom*_*eev的帖子

JavaScript 中的异步事件处理

我在防止eventListener代码中的双重(多重)处理方面遇到问题:

var locked;

button.addEventListener("click", function() {
    if (locked) return;
    locked = true;
    calculateSomethingHeavy();
    locked = false;
}
Run Code Online (Sandbox Code Playgroud)

第二次立即按钮单击会触发另一个事件,尽管locked == true. 像button.disabled = truesetTimeout(function() {locked = true;}, 0)这样的事情没有影响,因为(我猜)第二个调用是堆叠的,并且只有在第一个被完全处理后才会被调用。我想我缺少一些异步事件处理的完整技术。如何在纯js中做到这一点?

javascript asynchronous

6
推荐指数
1
解决办法
3139
查看次数

标签 统计

asynchronous ×1

javascript ×1