如何在JavaScript中一段时间​​后停止executinf函数

时间:2016-01-27 13:53:05

标签: javascript

function avoidAfterTime() {
var startTime = new Date().getTime();
var interval = setInterval(function () {
    if (new Date().getTime() - startTime > 3000) {
        clearInterval(interval);
        console.log("more than 2 sec")
        return;
    }
    longWorking();
}, 2000);
}

avoidAfterTime();

function longWorking(){
    var t;
    for (i = 0; i < 1e10; i++) t = i;
    console.log(t);
}    

您好。我是JS的新手。但是我需要停止运行一些函数(这里是longWorking),它可以执行几秒钟或者执行很长时间。我希望在需要太长时间的情况下中止该功能。我想我知道如何使用其他编程语言中的线程。但我不知道在JS中制作它。我以这种方式思考(上图)......但它不起作用。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

嗯,我起草了这个例子。所以这是一个每秒运行一次的功能,如果需要超过6秒,它就会停止。所以基本上你可以把你的工作量放在 doSomething()函数中,让它每秒工作一次,如果花费太长时间就停止它。或者您可以根据值停止它。这取决于你想用它做什么。我使用模块模式来隔离逻辑和变量。因此,您可以将逻辑封装在模块中。

(function() {
    'use strict';
    let timing = 0;

    const interval = setInterval(doSomething, 1000);

    function doSomething() {
        timing++;

        if (timing > 5) {
            clearInterval(interval);
        }

        console.log('working');
    }
})();

这是你要找的东西吗?