JavaScript
一、promise
当面试官问你:
- 什么是promise?
- 你对promise的理解?
- promise用过吗?
- ------------------------------------------------------------------------------------------------------------------
- 什么是promise
- 解决地狱回调
- 可以链式调用
- 有三种状态。
- promise有哪些API.
- 应用场景:封装ajax,axios的get,post封装,微信小程序中封装wx.request(),uniapp开发中uni.request()
名词约定
一般来讲,有以下的名词约定:
-
promise
(首字母小写)对象指的是“Promise实例对象” -
Promise
首字母大写且单数形式,表示“Promise构造函数” -
Promises
首字母大写且复数形式,用于指代“Promises规范”
什么是Promise?
- Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
- 从语法上说,promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。
- Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。
Promise的两个特点
- Promise对象的状态不受外界影响
- 1)pending 初始状态
- 2)fulfilled 成功状态
- 3)rejected 失败状态
- Promise 有以上三种状态,只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态
- Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果