javascript - setTimeout,setInterInterval,和requestAnimationFrame内部函数执行顺序
PHPz
PHPz 2017-04-10 16:42:04
[JavaScript讨论组]
    function play() {

        setTimeout(function(){
            if(indexNow == aLi.length) {
                indexNow = 0;
            }
            startMove(aLi[indexNow], {'left': '-800'}, 'easeOut', function(){
                console.log(indexNow);
                aLi[indexNow].style.left = '800px';
            });
            startMove(aLi[indexNow + 1], {'left': 0}, 'easeOut');
            // console.log('index:' + indexNow);
            indexNow ++ ;
        }, 3000);

        var timer = setTimeout(play, 3000);

    }

以这段为例,讲讲各个函数的执行顺序,搞不清异步到底是个什么机制,求大神讲解,给出其他的例子也行谢谢

PHPz
PHPz

学习是最好的投资!

全部回复(2)
PHP中文网

三言两语说不清, 推荐看这篇
JavaScript 运行机制详解:再谈Event Loop 标注版

迷茫

play执行

3s后

匿名函数执行(开始动画)
play执行

3s后

匿名函数执行(开始动画,若此时上次动画还未结束,此动画会加入动画队列中,等上次动画完成后再开始)
play执行

......

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号