前言
Promise 对象是 JavaScript 的异步操作解决方案,能够让程序的开发格式更加优雅,语义也相对更加直观,在一定程度上也提高了程序的可维护性,这篇总结将大量用到同步异步的概念,对于同步异步概念可以参考我的上一篇博文 : 【前端】探秘JavaScrpit同步异步运行机制
Promise
Promise,翻译过来的意思是承诺,承诺在这之后我会去做什么事情,这就是Promise,Promise本身就是一个构造函数,通用调用他实例化Promise对象
let p1 = new Promise((resolve,reject)=>{
//promise实例传参时候的函数接收两个参数,resolve代表成功时候的回调,reject代表失败时候的回调
console.log('我被实例化了!')
let num = Math.random()
if(num>0.5){
resolve()
}else{
reject()
}
})
p1.then(()=>{
console.log('成功时候的回调')
},()=>{
console.log('失败时候的回调')
})
这里注意,Promise对象实例化的时候传递一个函数作为参数,这个函数会立即执行
Promise对象的状态
Promise对象具有一个状态,状态一经改变将是不可逆的 ,状态维护是Promise对象的核心
- 异步操作未完成 pending
- 异步操作成功 fulfilled
- 异步操作失败 rejected
再来一个例子说明这三个状态
let p2 = new