如何在Javascript中外部循环?

时间:2016-05-29 19:29:49

标签: javascript

让我们说这个功能正在运行:

var runningFunction = "none",
    foo             = 1000,
    counter         = 0;

function someFunc() {

    runningFunction = "someFunc";

    from(var i = 0; i < foo; i++) {

        counter++;

    }

}

我希望打破这一点,比如说window.resize检测

$(window).resize(function() {

    // break someFunc function
    // say scenario broke at count = 595

}

我该怎么做?我可以写一些函数正在运行的变量,如上所示。

1 个答案:

答案 0 :(得分:3)

你做不到。函数中的所有代码都将在一个块中运行。其他代码(如resize事件侦听器)将一直等到函数完成。

如果你真的想“暂停”它,你需要将其分解为不同的功能,并使用return[[1]]来调用下一个。这将允许其他代码在中间运行。

setTimeout
var timer,
    counter = 0,
    result = document.getElementById('result');
function someFunc() {
  counter++;
  result.textContent = counter;
  if(counter < 1e5) timer = setTimeout(someFunc, 0);
}
someFunc();
document.getElementById('stop').addEventListener('click', function() {
  clearTimeout(timer);
});