我知道我可以使用setTimeout,但是我的软件有一些限制,因此我必须使用一种解决方法。我在网上找到了应该用作延迟功能的
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
因为我不是Js的新手,所以我不知道如何调用此函数。我正在尝试做这样的事情:
sleep(2000) {
...
}
但是以上操作无效。有人可以告诉我如何运行该功能。谢谢。
请注意,我的问题有所不同,因为我无法使用setTimeout函数。
答案 0 :(得分:0)
只需执行以下操作:
WebRequest.AuthenticationLevel
该函数旨在使脚本运行X毫秒,然后函数完成,脚本继续运行。您要在sleep函数之后运行的任何代码都必须位于下一行。
此外,您不必这样做,但这是格式正确的代码:
sleep(2000);
答案 1 :(得分:0)
该功能看起来不太好。我建议使用promise和.then():
function sleep(time) {
return new Promise(resolve => {
setTimeout(() => {
resolve()
}, time)
}
}
您可以这样调用此函数:
await sleep(2000)
或
sleep(2000).then(() => {
// rest of code
})
无奈 ,回到您的问题,您将像这样调用函数:
sleep(2000)
// rest of code
答案 2 :(得分:0)
您可以使用requestAnimationFrame
来模拟。
function sleep(milliseconds, callback) {
requestAnimationFrame(function() {
var start = performance.now();
for (var i = 0; i < 1e7; i++) {
if ((performance.now() - start) > milliseconds) {
return callback();
}
}
})
}
您会这样称呼它:
console.log(1);
sleep(2000, () => console.log(3));
console.log(2);
function sleep(milliseconds, callback) {
requestAnimationFrame(function() {
var start = performance.now();
for (var i = 0; i < 1e7; i++) {
if ((performance.now() - start) > milliseconds) {
return callback();
}
}
})
}
console.log(1);
sleep(2000, () => console.log(3));
console.log(2);