js异步编程
#
js 异步编程js 采用单线程模式, 优点:安全/简单 缺点:耗时需等待
#
同步模式大多数任务都是同步执行,逐行执行
#
异步模式- 开启过后立即执行下一个任务
- 事件循环
Event loop
来监听调用栈和消息队列
#
回调函数所有异步编程方案的根基
#
Promise- CommonJS 提出的
- 一个对象
- 初始 pending
- promsie 的对象会率先进入队列,先执行同步的代码
#
Promise 的案例Promised 对象 then 方法会返回一个全新的 Promise 对象
#
Promsie 静态方法#
Promise 并行执行等到多有任务结束才会结束,
#
promise.race只等待一个任务结束
#
Promise 执行时序问题执行时序 / 宏任务 /微任务 与 setTimeout 相比 Promise 优先执行,即使 Promise 在 setTimeout 后面
Promise 回调是微任务执行,立即调用,而 setTimeout 为宏任务执行
#
Generator 异步方案生成器语法 yield 可暂停生成器
递归生成器
#
Async/Await 语法糖语言层面标准语法