面试高频题:promise

5 阅读1分钟

1. 基础定义

  • Promise 是异步编程的解决方案,用于处理异步操作
  • 三种状态:pending(进行中)、fulfilled(已成功)、rejected(已失败)
  • 状态一旦改变就不可逆转

2. Promise vs 回调函数

  • 解决回调地狱(Callback Hell),提高代码可读性
  • 更好的错误处理机制(集中式 catch)
  • 支持链式调用,更清晰的异步流程控制

3. Promise 的静态方法

  • Promise.all():所有成功才成功,一个失败就失败
  • Promise.race():第一个 settled(无论成功失败)的就返回
  • Promise.allSettled():等待所有 settled,返回结果数组
  • Promise.any():任何一个成功就成功,全部失败才失败
  • Promise.resolve()/Promise.reject():创建已 settled 的 Promise

4. 微任务机制

  • Promise 的回调是微任务(microtask)
  • 执行时机:当前同步任务执行完后,下一个宏任务之前
  • 与 setTimeout(宏任务)的区别

5. Promise 与 async/await 的关系

  • async 函数返回 Promise
  • await 相当于 then 的语法糖
  • 错误处理 try/catch 与 catch 的对比