Promise 主要作用就是用于执行异步操作,如常见的网络数据传输。怎么理解他呢?先从他的中文名开始Promise就是承诺,好奇怪的名字?!写个程序还要对天发誓了不成……
这个名字其实也挺好的,就是 Promise 对程序员许下一个承诺:嗨!哥们,你说的这个事情包给我了,但是可能需要一点时间或者其他的,所以你也不用等我了,先忙其他的,不管这件事何时完成,结果如何,我Promise对天发誓:结果一定会给你的。
Promise 有三种状态,分别是:初始态(Pending)、成功态(Resolved)、失败态(Rejected)。三种
状态不可逆转。Promise一旦建立,立即执行,而且结果不是成功,就是失败,而且执行中途不可取消。
基本的Promise示例
promise对象需要一个函数作为参数,函数又有两个参数,而且也是函数,一个是resolve,另一个是
reject。如果结果符合预期,使用resolve()处理,不符合则使用reject()处理。
let promise = new Promise((resolve,reject)=>{
if( /* 请求结果符合预期 */ )
resolve(value)
else
reject(error)
})Promise的返回值
Promise的返回值仍然是一个promise对象,如何接受和处理这个返回值呢?使用.then()和.catch()
.then()用于接收预期resolve(value)的value,.catch用于接收不预期reject(error)的error
promise.then(value=>{ console.log(value) })
promise.catch(error=>{ console.log(error) })其他需要注意的
.then() 或 .catch()之后,同样是有返回值,而且返回值也是一个Promise,而且是一个全新的Promise