如何每隔几秒钟运行一个有返回值的函数

Howto run function every few seconds that has return values?

本文关键字:一个 返回值 函数 何每隔 几秒 钟运行 运行      更新时间:2023-09-26

我怎样才能每隔几秒钟运行一次,而不妨碍页面的其他部分加载呢?

function Create() {
    var SomeArray = [];
    for ( var i=0; i<=1 ; i ++) {
    SomeArray[i] = (Math.random() * 10) + 1;
    //alert(arr[0]);
    }
   return SomeArray;
}
var x = Create();
alert(x[0] + x[1]);

我正在尝试这个var timer = setInterval(创建,5000);它阻止加载页面的其余部分。我想每隔几秒就得到一个新值

一个基本的例子是:

var counter = 0;
var timerRef;
var increment = function() {
    counter += 1;
    console.log(counter);
    timerRef = setTimeout(increment, 1000);
}
setTimeout(increment, 1000);
// clearTimeout(timerRef);

请避免使用document.write,详情请参考截屏。

setInterval()可以配置为在您请求的任何时间间隔重复调用您指定的任何函数。但是,您无法从该函数检索返回值。相反,您需要在传递给setInterval()的回调中处理结果,或者调用其他函数并在回调中传递生成的结果。这就是JavaScript中异步函数的工作方式。我在下面提供了几个关于选项的例子:

如果您只想每5秒生成两个1到10(包括)之间的随机十进制值,您可以这样做:

var interval = setInterval(function() {
    var rand1 = (Math.random() * 10) + 1;
    var rand2 = (Math.random() * 10) + 1;
    // now insert code here to do something with the two random numbers
}, 5000);

如果您希望随机值为整数(这是更常见的),那么您可以这样做:

var interval = setInterval(function() {
    var rand1 = Math.floor(Math.random() * 10) + 1;
    var rand2 = Math.floor(Math.random() * 10) + 1;
    // now insert code here to do something with the two random numbers
}, 5000);

如果你想调用一个函数并传递这两个随机数,你可以这样做:

function processRandoms(r1, r2) {
    // code here to do something with the two random numbers
}
var interval = setInterval(function() {
    var rand1 = Math.floor(Math.random() * 10) + 1;
    var rand2 = Math.floor(Math.random() * 10) + 1;
    processRandoms(rand1, rand2);
}, 5000);

你可以在任何时候停止循环的间隔:

clearInterval(interval);