本帖最后由 吾爱咖啡 于 2021-9-16 15:44 编辑
最近在写油猴脚本,想写个sleep()函数。
先是用setTimeout写了个简单的,发现不管用。猜测可能是因为setTimeout类似异步。然后找啊找,最后写出如下代码,发现还是不行,感觉还是没有一点停顿(顺便描述一下我使用sleep的环境):
[JavaScript] 纯文本查看 复制代码 (function() {
'use strict';
// 一些定义和声明
function sleep(time, unit){
if(time == null){time = 5000;}//我想不带参数的时候就默认5秒
if(unit != null){time = time * 1000;}//我想这个参数是任意字符时,前面的就是秒,当然,真要在别处用,这里要再改改
for(var t = Date.now();Date.now() - t <= time;);
}
setInterval(a, 30000);
setInterval(b, 20000);
function a(){
//balabala
sleep();
//balabala
}
function b(){}
})();
网上找到有好几种sleep的写法,但用起来都挺复杂。要么是这种:sleep(function, time),但我只是单纯想暂停几秒而已啊。要么是async/await组合,我要sleep的地方挺多,每次都要打await sleep()感觉有点麻烦,还必须在async function()里。
我就想能不能有个在哪都能调用的sleep()函数?
【已解决】
方法在4楼
最终的我的代码在7楼 |