Promise对象
作用
- 有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易
定义
- Promise对象是一个期约,定义着未来发生的事件,它有3种状态,表示着一个任务的状态,它们分别是pending(进行中), fulfilled(成功),rejected(失败);
- Promise对象可以比喻成一个容器,里面装着外来才会结束的事件(通常是异步操作)的结果。
- 特点
- Promise的状态只能有内部的决定,不受外部影响,这也是Promise(承诺)的由来。
- Promise的状态只能改变一次,一旦转态改变,不会再变。
- 要么从pending -> fulfilled
- 要么从pending -> rejected
基本使用
- 生成promise对象,只需调用 Promise对象(),传入一个回调函数(resolve, reject) => {},这是用来让我们自定义什么时候发生状态的改变。
- 调用then()方法,传入两个回调函数,他们是用来定义Promise分别变成两种不同状态时应该执行怎样的业务逻辑
- 调用catch()方法,传入一个回调函数,定义当promise执行期间发生异常时应该执行怎样的业务逻辑,此时状态是reject。
let promise = new Promise((resolve,reject)=>{
console.log('111');
setTimeout(()=>{
console.log('222');
resolve('hhh');
},0)
console.log('333');
});
console.log('444');
promise.then((data)=>{
console.log