相关疑难解决方法(0)

有人可以解释Javascript中的"去抖动"功能

我对javascript中的"debouncing"函数很感兴趣,这里写的:http://davidwalsh.name/javascript-debounce-function

不幸的是,代码没有清楚地解释清楚,让我理解.任何人都可以帮我弄清楚它是如何工作的(我在下面留下了我的评论).总之,我真的不明白这是如何工作的

   // Returns a function, that, as long as it continues to be invoked, will not
   // be triggered. The function will be called after it stops being called for
   // N milliseconds.


function debounce(func, wait, immediate) {
    var timeout;
    return function() {
        var context = this, args = arguments;
        var later = function() {
            timeout = null;
            if (!immediate) func.apply(context, args);
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) …
Run Code Online (Sandbox Code Playgroud)

javascript debouncing

134
推荐指数
5
解决办法
7万
查看次数

承诺 - 是否有可能强制取消承诺

我使用ES6 Promises来管理我的所有网络数据检索,在某些情况下我需要强制取消它们.

基本上这种情况是我在UI上有一个提前输入搜索,其中请求被委托给后端必须基于部分输入执行搜索.虽然此网络请求(#1)可能需要一点时间,但用户会继续键入哪个最终会触发另一个后端调用(#2)

这里#2自然优先于#1,所以我想取消Promise包装请求#1.我已经拥有数据层中所有Promise的缓存,因此我理论上可以检索它,因为我试图提交#2的Promise.

但是一旦从缓存中检索Promise,我该如何取消Promise#1?

有人可以建议一种方法吗?

javascript promise cancellation

68
推荐指数
4
解决办法
3万
查看次数

标签 统计

javascript ×2

cancellation ×1

debouncing ×1

promise ×1