原文出处:https://blog.csdn.net/weixin_39169232/article/details/74748150
延伸阅读:ionic2页面回传值,关于Typescript的Promise承诺
promise最主要的思想就是对异步操作结果的一个承诺,承诺的状态有如下几种:
- 1.pending: promise 的初始化状态
- 2.resolved: 代表异步操作成功 (已成功,又称Fulfilled)
- 3.rejected: 代表异步操作失败
注意:当一个promise处于 resolved或rejected状态后,它的状态就永远不可更改了。
一、定义food函数
function foo(){
return new Promise ((resolve, reject) => {
try{
resolve("success"); // 成功
}
catch(error){
reject("fail"); // 失败
}
});
}
二、调用food函数
//调用promise 方法
this.foo()
.then( (res) =>{
console.info(res); // then - 成功后执行
})
.catch( (err) =>{
console.error(err); // catch - 失败后执行
});
说明:
*正常在promise中并不需要 try...catch ,因为promise会在异常抛出的时候
*自动进入 rejected状态。
*上段代码中声明了一个foo的函数,返回一个promise.
*一个promise包含一个then方法,它接受一个函数,在promise被resolved后调用。
*promise还提供了一个名为catch的方法,它在promise被rejected之后被调用