JavaScript 立即设置间隔 运行
JavaScript setInterval immediately run
我立即在 javascript 中找到了 运行 间隔的解决方案,而不是等待第一个 "timeout"
setInterval(function hello() {
console.log('world');
return hello;
}(), 2500);
但问题是这个解决方案在这样的构造中不起作用
(function () {
window.Banner = {
doMagic: function () {
setInterval(function magic() {
console.log('magic');
return magic;
}, 2500);
}
}
})();
Banner.doMagic();
我试过 return 横幅方法,给它命名并 return 但没有成功。
重点是实际构造要复杂得多,所以我不能只是将它重写为广泛提供的 "return setTimeout" 解决方案,所以找到我在这个问题上做错了什么真的很完美。
在您的代码中无法执行所需的任务,而是遵循以下方法:
// Use function to perform the task.
function doTask () {
console.log("...");
}
// Perform task for the first time.
doTask();
// On interval do task.
setInterval(doTask, 2500);
也许最合适的方法是将整个回调放在 setInterval 调用之外,并将其放在一个单独的变量中:
(function () {
window.Banner = {
doMagic: function () {
var magic = function() {
console.log('magic');
};
setInterval(magic, 2500);
magic();
}
}
})();
Banner.doMagic();
效果和你的第一个代码是一样的,但是这样你的代码更干净一些。
您不再自动执行第二个代码片段中的函数。您需要将其更改为以下内容:
doMagic: function () {
setInterval(function magic() {
console.log('magic');
return magic;
}(), 2500);
}
虽然我同意其他人的意见,但这不是最简洁的方法,而且对于下一个出现的开发人员来说不是很明显。我建议将函数存储在一个变量中,立即执行它,然后 运行 它在 setInterval
也:
doMagic: function () {
var magic = function magic() {
console.log('magic');
return magic;
}
magic();
setInterval(magic, 2500);
}
如果您将括号添加到下面的代码部分,它会起作用
doMagic: function () {
setInterval(function magic() {
console.log('magic');
return magic;
}(), 2500); // added them here
}
试试这个例子
var hello = function() {
document.write('hello... ');
};
setInterval(hello, 1000);
hello();
我立即在 javascript 中找到了 运行 间隔的解决方案,而不是等待第一个 "timeout"
setInterval(function hello() {
console.log('world');
return hello;
}(), 2500);
但问题是这个解决方案在这样的构造中不起作用
(function () {
window.Banner = {
doMagic: function () {
setInterval(function magic() {
console.log('magic');
return magic;
}, 2500);
}
}
})();
Banner.doMagic();
我试过 return 横幅方法,给它命名并 return 但没有成功。 重点是实际构造要复杂得多,所以我不能只是将它重写为广泛提供的 "return setTimeout" 解决方案,所以找到我在这个问题上做错了什么真的很完美。
在您的代码中无法执行所需的任务,而是遵循以下方法:
// Use function to perform the task.
function doTask () {
console.log("...");
}
// Perform task for the first time.
doTask();
// On interval do task.
setInterval(doTask, 2500);
也许最合适的方法是将整个回调放在 setInterval 调用之外,并将其放在一个单独的变量中:
(function () {
window.Banner = {
doMagic: function () {
var magic = function() {
console.log('magic');
};
setInterval(magic, 2500);
magic();
}
}
})();
Banner.doMagic();
效果和你的第一个代码是一样的,但是这样你的代码更干净一些。
您不再自动执行第二个代码片段中的函数。您需要将其更改为以下内容:
doMagic: function () {
setInterval(function magic() {
console.log('magic');
return magic;
}(), 2500);
}
虽然我同意其他人的意见,但这不是最简洁的方法,而且对于下一个出现的开发人员来说不是很明显。我建议将函数存储在一个变量中,立即执行它,然后 运行 它在 setInterval
也:
doMagic: function () {
var magic = function magic() {
console.log('magic');
return magic;
}
magic();
setInterval(magic, 2500);
}
如果您将括号添加到下面的代码部分,它会起作用
doMagic: function () {
setInterval(function magic() {
console.log('magic');
return magic;
}(), 2500); // added them here
}
试试这个例子
var hello = function() {
document.write('hello... ');
};
setInterval(hello, 1000);
hello();