如何在循环内从函数setTimeout更改变量

时间:2019-05-30 03:46:32

标签: javascript

如何使用下述条件将值替换为变量dinamic_delay?

var emails = []; // array 
var number = 5;
var count = 0;
var dinamic_delay;
for (i = 0; i < emails.length; i++) {
    count++;
    if (count == number) {
        dinamic_delay = 3000;
        count = 0; // resset count
    } else {
        dinamic_delay = 500;
    }
    setTimeout(function (i) {
        sendemail(email[i]);
    }, dinamic_delay * i, i);
}

1 个答案:

答案 0 :(得分:0)

我不得不提醒自己setTimeout的工作原理:

a。 setTimeout(myfunction(),5000)-从现在开始(执行此代码)至少5000毫秒后调用该函数。

b。 setTimeout(myfunction(),5000)-从现在开始(执行此代码)至少5000毫秒后调用该函数。

换句话说,在调用b之前没有自动10,000毫秒,例如可能要花6000毫秒

如果您要定期调用

setInterval,则很有用。 我尚未对此进行测试。