有一种方法可以配置javascript的setInterval方法来立即执行该方法,然后与计时器一起执行


当前回答

有一个方便的npm包叫做firstInterval(完全披露,它是我的)。

这里的许多示例都不包括参数处理,在任何大型项目中更改setInterval的默认行为都是有害的。从文档中可以看出:

这种模式

setInterval(callback, 1000, p1, p2);
callback(p1, p2);

等于

firstInterval(callback, 1000, p1, p2);

如果您使用的是老式浏览器,并且不想要依赖项,那么可以简单地从代码中剪切和粘贴。

其他回答

/ / YCombinator 匿名函数(fnc) { 返回函数(){ fnc。应用(fnc参数); 返回fnc; } } //第一次调用: setInterval(匿名函数(){ console.log(“酒吧”); }) (), 4000); //不调用第一次: setInterval(匿名函数(){ console.log (" foo "); }), 4000); //或者简单: setInterval(函数(){ console.log(“巴兹”); }, 4000);

好吧,这太复杂了,让我说得简单点:

函数hello(status) { console.log(‘世界’,+ + status.count); 返回状态; } setInterval(hello, 5 * 1000, hello({count: 0}));

为了解决这个问题,我在页面加载后第一次运行这个函数。

function foo(){ ... }

window.onload = function() {
   foo();
};

window.setInterval(function()
{
    foo(); 
}, 5000);

这里有一个简单的版本给新手,没有所有的混乱。它只是声明函数,调用它,然后开始interval。就是这样。

//在这里声明函数 函数My_Function () { console.log (" foo "); } //首先调用函数 My_Function (); //设置时间间隔 Var interval =窗口。setInterval(My_Function, 500);

你可以将setInterval()包装在提供该行为的函数中:

function instantGratification( fn, delay ) {
    fn();
    setInterval( fn, delay );
}

...然后这样使用它:

instantGratification( function() {
    console.log( 'invoked' );
}, 3000);

其实最快的就是去做

interval = setInterval(myFunction(),45000)

它会调用myfunction,然后每45秒再做一次,这和之前做的不一样

interval = setInterval(myfunction, 45000)

它不会调用它,但只安排它