Promise状态
ES6中Promise链式的思想
f1().then(f2).then(f3);
异步操作的三种状态
- pending(异步操作未完成)
- fulfilled(异步操作已完成)
- rejected(异步操作失败)
而三种状态只有两种模式,一旦状态改变,就不会再变
- 从pending到resolved 从未完成到以完成
- 从pending到rejected 从未完成到操作失败
reject的含义,把Promise的状态设置为rejected(失败),通过then可以捕捉到,然后执行失败的代码
catch的含义,用来指定reject的回调,当resolve执行报错的时候,会抛出异常到catch,将参数传入err里面,有错误代码也不会报错,与try/cat对比,有相同的功能
export function put(url,data,haaders){
return new promise((resolve,reject) =>{ //返回一个Promise对象
axios.put(url,data,headers).then((res) =>{
resolve(res) //执行成功后的时候返回
}).catch((err) =>{ //resolve执行错误的时候,会将参数传入err并执行reject
reject(err) //失败的时候返回
})
})
}
服务器完成请求后希望对服务器的响应进行某些处理。这可以通过使用该then方法来实现,使用result进行处理
myPromise.then(result => {
// do something with the result.
});
服务区请求被拒绝后的响应方法,会在reject调用promise方法后立即执行
myPromise.catch(error => {
// do something with the error.
});