我希望每次执行延迟的秒数都不一样
例如 setInterval(function(){}, 1 秒) //第一次 setInterval(function(){}, 2 秒) //第二次
感谢~
我希望每次执行延迟的秒数都不一样
例如 setInterval(function(){}, 1 秒) //第一次 setInterval(function(){}, 2 秒) //第二次
感谢~
|
1
我讲明白我要干什么了吗 哈哈
|
|
2
或者传授我 JavaScript 怎么 死循环 然后在循环里面实现像 Python 一样的同步 sleep 功能。这家伙异步来异步去的 不知道在搞什么
|
|
chemzqmMar 23, 2017
3
setTimeout 套 setTimeout
|
|
4
@chemzqm setTimeout 没有循环功能啊? 在 setInterval 里面执行 setTimeout 。 setInterval 不管你 异步继续循环
|
|
5
感觉你还是适应一下异步吧,每个语言有每个语言的套路, nodejs 的话还好,你要是在 web 端来个死循环, UI 就不用渲染了
|
|
6
setTimeout 内的函数递归调用自己
|
|
8
有两个方法吧,一个是加一个缓存,然后每次取出的时候,缓存加 1
另外一个方法是从后台那边取值... 能想到的就这两个方法吧 |
|
10
@Colorful 而且不知道怎么配置值 我想搞的数组去 pop , setInterval 读取一次延迟秒数 然后就按照这个死循环了,不继续 pop 了
|
|
11
```
var exec = (func, interval = 1000) => setTimeout(() => (func(), exec(func, interval * 2)), interval) exec(function () { console.log(new Date().getSeconds()) }) ``` |
|
shylingMar 23, 2017
13
本来就不准确(雾
|
|
14
var c=0
var t function timedCount() { console.log(c); c=c+1 t=setTimeout("timedCount()",c*1000); } timedCount(); |
|
16
如果可以 es6/es7 的话,可以这样
``` function wait(time) { return new Promise(rs => setTimeout(rs, time)); } async function run() { for (let i = 0;; ++i) { console.log(i); await wait(1000 * i); } } run(); ``` |
|
SparetireMar 23, 2017
17
没有 es6 的话就这样
``` var interval = 1000, i = 1; setTimeout(function () { console.log(i++); setTimeout(arguments.callee, interval * i); }, interval); ``` |
|
18
var c = 1000; var i = setInterval(k, 1000); function k() {console.log(c); clearInterval(i); c += 1000; i = setInterval(k, c);}
|
|
ParabolazzMar 24, 2017 via Android
19
用闭包即可解决
|