1

有没有办法清除 asetTimeout而无需将其存储在变量中然后将其传递给clearTimeout

或者以某种方式setTimeout返回一个 id 而不是一个对象,我会传递给它clearTimeout

4

1 回答 1

1
function myTimeout(f, ms) { 
    var id = setTimeout(f, ms); 
    return { 
       cancel : function() { 
          clearTimeout(id); 
       } 
    }; 
}

var t = myTimeout(somefunc, 5000);

// ...

t.cancel();
于 2015-12-20T06:39:38.060 回答