十分钟!坤坤陪你彻底搞懂Promise

lxf2023-04-10 10:36:01

一、基本介绍

  1. Promise 是承诺的意思,理解下来就是在一段时间内,等待一件事情的完成,在浏览器环境中,这个一段时间就是异步操作的表现。
  2. 区分同步和异步:当我们调用一个方法之后,需要等待这个操作返回结果,就是异步操作,否则为同步操作。

二、为什么需要Promise

1. 常见的异步操作

  • 宏任务:setTimeout、ajax、 脚本<script>、MessageChannel(消息通道)、ui渲染、DOM事件
  • 微任务:Promise.then(原生的Promise)、mutationObserver(h5提供的api)

2. 异步回调存在的问题

  • 回调地狱、恶魔金字塔:当需要做多个异步操作时会导致代码多层嵌套,并且代码不整洁、不易阅读
  • 并行结果:多个异步任务未分前后顺序执行时,需要等待任务都完成后才可继续执行后续逻辑时,无法并行执行任务节省时间

3. 关于 Promise 状态