美文网首页
7.同步、异步和事件循环(精简)

7.同步、异步和事件循环(精简)

作者: webj | 来源:发表于2018-08-22 14:13 被阅读0次

    1.什么是单线程,和异步的关系

           (1) 单线程 - 只有一个线程,只能做一件事

            (2)原因 - 避免 DOM 渲染的冲突

                     浏览器需要渲染 DOM

                    JS 可以修改 DOM 结构

                    JS 执行的时候,浏览器 DOM 渲染会暂停

                    两段 JS 也不能同时执行(都修改 DOM 就冲突了)

                    webworker 支持多线程,但是不能访问 DOM

            (3)解决方案 - 异步

    2.什么是 event-loop

            实际上,主线程只会做一件事情,就是从消息队列里面取消息、执行消息,再取消息、再执行。当消息队列为空时,就会等待直到消息队列变成非空。而且主线程只有在将当前的消息执行完成后,才会去取下一个消息。这种机制就叫做事件循环机制,取一个消息并执行的过程叫做一次循环。

            (1)事件轮询,JS 实现异步的具体解决方案

            (2)同步代码,直接执行

            (3)异步函数先放在 异步队列 中

            (4)待同步函数执行完毕,轮询执行 异步队列 的函数

    3.Promise 的基本使用和原理

            (1)基本语法回顾

            (2)异常捕获

            (3)多个串联

            (4)Promise.all 和 Promise.race

            (5)Promise 标准

    4.介绍一下 async/await

            (1)then 只是将 callback 拆分了

            (2)async/await 是最直接的同步写法

            (3)语法

    相关文章

      网友评论

          本文标题:7.同步、异步和事件循环(精简)

          本文链接:https://www.haomeiwen.com/subject/qkzeiftx.html