zoukankan      html  css  js  c++  java
  • (九) -前端-异步编程

    9.JS的异步编程

    因为js是单线程的。浏览器遇到setTimeout 和 setInterval会先执行完当前的代码块,在此之前会把定时器推入浏览器的待执行时间队列里面,等到浏览器执行完当前代码之后会看下事件队列里有没有任务,有的话才执行定时器里的代码

    常用的方式:setTimeout setIntervel ajax Promise asyc/await

    宏任务(marcotask)微任务(microtask) 的执行顺序

    先执行微任务,然后在执行宏任务;

    JS中的宏任务:setTimeout setIntervel ajax

    JS中的微任务:Promise.then Promise.catch await(可以理解成Promise.then)

    JS的执行顺序是先同步 再异步;同步执行完成之前 异步不会执行

    EventLoop 事件循环

    EventQueue 事件队列

    ![img](file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg)![img](file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg)

    ![image.png](file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png)

    ---------------------------
    作者:HelloBytes
    关于作者: JavaEE小新人,请多多赐教!
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    volatile关键字
    线程的状态
    java中的匿名内部类
    java高精度实数和小数
    JS、JSP、ASP、CGI
    论文结构要求
    java中的标识符、关键字、保留字
    java IODemo
    Bagging和Boosting的区别
    由Memcached升级到 Couchbase的 Java 客户端的过程记录(一)
  • 原文地址:https://www.cnblogs.com/HelloBytes/p/14177965.html
Copyright © 2011-2022 走看看