zoukankan      html  css  js  c++  java
  • 异步编程思想

    异步编程是我们JS中非常重要也是逼格非常高的编程方式

    JS中的任务队列->不管是定时器还是我们的点击事件,我们都是事先把需要做的事情存储到任务队列中排队等待,当需要去执行的时候,我们在执行;

    JS是单线程的->当我在主线程上执行一个任务的时候,只有当当前的任务执行完成了,才会在到任务队列中找下一个任务执行

    例如: 先把任务队列中10ms后执行的这个任务拿出来执行,输出2,并且循环了1000次,当本次任务结束后(不管多长时间),在到任务队列中把15ms这个到时间的任务拿出来执行

    1、什么是异步编程?什么是同步编程?

    同步:当前JS主线程上的事情都完成了才能进行下一次事情
    异步:当前的操作排列到任务队列中,不管是否到达了执行的条件,但是都是先把

    JS主线程上的内容执行完成后才会到任务队列中找下一个任务执行
    例如:葛琪下班回家煮咖啡,煮上后,需要一个小时才能煮好,但是这段时间,葛琪并没有等着,继续去读书了->异步 李兵下班回家也是煮咖啡,也是一个小时才能煮好,但是李兵做事比较专一,咖啡没煮好,就一直盯着煮,啥都不做,只有都煮好了才会去看书->同步

    • 1)所有的定时器都是异步编程
    • 2)所有的事件绑定都是异步编程的 每一次循环都把图片加载的这件事情放在任务队列中,for循环这个操作在JS主线程上执行,只有循环结束后(i=10),我们才到任务队列中把排队任务依次的执行,所以输出10次10
    • 3)在我们后期第七周给大家讲到的Ajax中也一般使用的是异步编程
    • 4)模棱两可的一个异步编程->回调函数

    回调函数:把一个方法当做参数传递到另外一个函数中执行

    我们之前接触的都有哪些是回调函数?
    1. 动画库

      

    1. ary.sort(function(a,b){return a-b});
    2. 定时器也是回调函数 window.setTimeout(function(){},10);
    3. DOM2事件 curEle.addEventListener("click",function(){},false);

    回调函数也是非常非常的重要的
    思考题:在20151118这一天"4.回调函数.html"中有我们对于forEach和map的详细解读以及我们自己编写兼容的处理方式
  • 相关阅读:
    [CF707D]Persistent Bookcase_主席树_bitset
    [CF798D]Mike and distribution_贪心
    [LuoguP2164][SHOI2007]交通网络_拓扑排序_概率期望
    [LuoguP3064][USACO12DEC]伊斯坦布尔的帮派Gangs of Istanbull(加强版)_线段树_贪心
    [CF306C]White, Black and White Again_排列组合
    [LuoguP2167][SDOI2009]Bill的挑战_容斥原理/状压dp
    [LuoguP2163][SHOI2007]园丁的烦恼_CDQ分治
    正则字符串插入字符
    [react]
    react 预览pdf 转换
  • 原文地址:https://www.cnblogs.com/Scar007/p/7717937.html
Copyright © 2011-2022 走看看