zoukankan      html  css  js  c++  java
  • 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
    来源:知乎
    著作权归作者所有,转载请联系作者获得授权。
  • 相关阅读:
    快速排序
    归并排序
    python module的结构
    HTTPResponse.read([amt]):只能read一次
    本地文件上传到远程服务器
    HTTP POST发消息
    64. 最小路径和-python
    322.零钱兑换-python
    把二叉树打印成多行 -python
    按之字形顺序打印二叉树 -python
  • 原文地址:https://www.cnblogs.com/hduhdc/p/6155091.html
Copyright © 2011-2022 走看看