• js 循环迭代定时器的执行次数和执行顺序??主要是因为js是单线程


    当定时器运行时即使每个迭代中执行的是setTimeout(.., 0),所有的回调函数依然是在循环结束后才会被执行

    for语句开始
    赋值i=1;
    settimeout语句1000毫秒后把timer函数加入进程队列;(这里的i具体值是几,要等被调用的时候才知道);
    赋值i=2;
    settimeout语句1000毫秒后把timer函数加入进程队列;
    赋值i=3;
    settimeout语句1000毫秒后把timer函数加入进程队列;
    赋值i=4;
    settimeout语句1000毫秒后把timer函数加入进程队列;
    赋值i=5;
    settimeout语句1000毫秒后把timer函数加入进程队列;
    赋值i=6;
    i<=5不满足,退出循环
    for语句一下子就运行完了,

    …… 1000毫秒后,
    上面定时器里的任务一个个加入进程队列,
    现在进程如果是空闲的,页面里没有其他代码在运行,
    开始执行第一个timer函数,这时候i已经是6了;后面几次调用也都是6


     引用
    链接:https://www.zhihu.com/question/50884986/answer/123146568
    来源:知乎
    著作权归作者所有,转载请联系作者获得授权。
  • 相关阅读:
    "ping: unknown host www.baidu.com"问题解决方式
    hive分区表中表字段操作
    hive常用函数
    spark书籍视频推荐
    pandas筛选排序
    pandas常用函数
    hive字符串函数
    Centos镜像下载
    记录操作 子查询 三表联查
    .net Excel转换DataSet
  • 原文地址:https://www.cnblogs.com/hduhdc/p/6155091.html
Copyright © 2020-2023  润新知