Promise是异步编程的一种解决方案,它有三种状态,分别是
- pending-进行中
- resolved-已完成
- rejected-已失败
状态一旦改变,就无法再次改变状态,这也是它名字promise-承诺的由来
声明一个promise对象
// 方法1 let promise = new Promise ( (resolve, reject) => { if ( success ) { resolve(a) // pending ——> resolved 参数将传递给对应的回调方法 } else { reject(err) // pending ——> rejectd } } ) // 方法2 function promise () { return new Promise ( function (resolve, reject) { if ( success ) { resolve(a) } else { reject(err) } } ) }
Promise.prototype.then()
promise.then( () => { console.log('this is success callback') }, () => { console.log('this is fail callback') } )
Promise.prototype.catch()
promise.then( () => { console.log('this is success callback') } ).catch( (err) => { console.log(err) } )