Promise 是啥,直接上图:
Promise 就是处理异步函数的API,它可以包裹一个异步函数,在异步函数完成时抛出完成状态,让代码结束远古时无限回掉的窘境。配合 async/await 语法糖,可以把异步函数当成同步函数来写,极大的提升开发效率和代码可读性。
高频面试题
- Promise的三种状态是什么?状态变化是否可逆?
待定(Pending)已兑现(Fulfilled)已拒绝(Rejected)
状态变化不可逆(单向流动)
- then方法与catch方法的返回值是什么?
返回新的Promise对象
- 并发控住,限制同时执行的Promise数量
基本想法就是将计算结果存在一个数组内,并通过递归的方式自动执行限制内的方法。
- 同步reject处理
结果: after reject → sync log → error, resolve 或者 reject 不会终止函数的执行。
- 手动实现Promise.all
- 按顺序执行,不按照链式调用
- 强制超时控制
有时候面试官会问 axios请求的超时是如何实现的,大致也能用这个思路回答。