-
对象的状态不受外界影响。Promise对象获取的是异步操作,有三种状态:pending(进行中)、fulfilled(已成功)、reject(已失败)。除了异步操作的结果,其他操作都无法改变这个状态。
-
一旦状态改变,就不会再变。从pending变为fulfilled和从pending变为rejected状态,只要处于fulfilled和rejected,状态就不会再变。
状态的缺点:
无法取消Promise,一旦新建它就会立即执行,无法中途取消。
如果不设置回调函数,Promise内部抛出错误,不会反应到外部。
当处于pending状态时,无法得知目前进展到哪一阶段。
使用语法:
let p = new Promise( (resolve,reject)=>{
//resolve 和reject是两个函数
})
p.then(
()=>{}, // 传入的resolve函数,resolve翻译成中文是解决
()=>{} //传入的reject函数,reject翻译成中文是拒绝
).catch((reason,data)=>{
console.log(“catch失败执行回调抛出原因”,reason)
})
then方法
======
then方法接收两个参数作为参数,第一个参数是Promise执行成功时的回调,第二个参数是Promise执行失败的回调,两个函数只会有一个被调用。
通过