javascript setTimeout()输出另存为变量

Vai*_*uri 0 javascript

我想将setTimeout()输出保存为变量.

例如:

function time() {
 return  (new Date).getTime();
 }

for (var x=0; x<10; x++) {
   setTimeout( time() , 2000);
}
Run Code Online (Sandbox Code Playgroud)

上面的javascript代码每2秒返回时间(以毫秒为单位),最多10次.

所以我们将得到10个输出.我想将这些输出保存为10个变量.所以我将能够计算平均值等.

请任何帮助将不胜感激.

T.J*_*der 9

上面的javascript代码每2秒返回时间(以毫秒为单位),最多10次.

不,它没有.它time 立即调用并将其返回值传递给setTimeout(它不会对它做任何事情),因为你有()time.如果你有setTimeout(time, 2000),它将调度10次调用time,但所有这些调用大约发生在2秒后(不是两秒).

所以我们将得到10个输出.我想将这些输出保存为10个变量

这就是数组的用途.:-)

var times = [];

function time() {
    times.push((new Date).getTime());
    if (times.length < 10) {
        setTimeout(time, 2000);
    }
}

setTimeout(time, 2000);
Run Code Online (Sandbox Code Playgroud)

或者,如果由于某种原因您无法time直接修改:

var times = [];

function time() {
    return (new Date).getTime();
}

function nextTime() {
    times.push(time());
    if (times.length < 10) {
        setTimeout(nextTime, 2000);
    }
}

setTimeout(nextTime, 2000);
Run Code Online (Sandbox Code Playgroud)