面试高频题:promise
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 的对比