同步、异步

在整个html中,加载有多种,js加载,css,img,音视频,但是只有js是阻塞式同步加载,其他全部是异步加载

  异步:执行需要时间,不影响后面代码的运行

  同步: 需要等待

事件属于同步还是异步?

  我对事件理解是,事件触发是异步过程,而事件本身是同步的。

脚本中的 async 和 defer

  async: 会将脚本由阻塞式同步加载变成异步加载

  defer:  将脚本延迟到页面加载后开始执行

通道阻塞:

  在浏览网页中,有时看到只有文字,图片和样式都没加载出啦,这种情况是由于js阻塞式加载发生了阻塞,阻塞后css、img都无法加载上。使用阻塞式加载好处是,速度快,缺点是可能发生通道阻塞问题。

函数中的 async 和 await

  

 1     // async 函数
 2     async function abc(){
 3             return 10;
 4         }
 5         abc().then(function(num){
 6             console.log(num);
 7         })
 8 
 9     // async函数执行以后返回一个promise对象
10     // async函数中return 的结果需要通过这个函数返回的promise对象中then里面的函数参数获取
    // await关键词可以在async中使用,但是await只能用于promise对象的前面
    async function abc(){
            console.log("aaa");
            // 将Promise异步转换成了阻塞式同步
            await Promise.resolve().then(function(){
                console.log("bbb");
            })
            console.log("ccc");
        }
        abc();
    //输出结果 bbb ccc

猜你喜欢

转载自www.cnblogs.com/wangjingzhi/p/12332622.html