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

2018-08-22  本文已影响0人  webj

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)语法

上一篇 下一篇

猜你喜欢

热点阅读