扫码关注官方订阅号
有一个需要在一个循环里执行setTimeout,差不多是这样
for (var i = 0; i < 30; i++){ setTimeout("isfun()", 3000) }
setTimeout是异步的,怎么让他在延迟执行完之后接着执行下一个setTimeout,而不是30个一起执行
新手望赐教
欢迎选择我的课程,让我们一起见证您的进步~~
把逻辑写在settimeout里,用递归的方式。
settimeout
var i=0; function isfun(){ //your code here //----- (++i<30)&&setTimeout("isfun()", 3000); /*或者通俗点这样写 i++; if(i<30){ setTimeout("isfun()", 3000); } */ }
封装一下吧:
var len = 29; var wrapperIsfun = function() { setTimeout(function() { isfun(); len-- && wrapperIsfun(); }, 100); }; wrapperIsfun();
var count = 30; setTimeout(func, 3000); function func() { if (count > 0) { setTimeout(func, 3000); } count--; }
说白了就是在setTimeout里再调用setTimeout
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
把逻辑写在
settimeout里,用递归的方式。封装一下吧:
说白了就是在setTimeout里再调用setTimeout