ES6中Promise使用方法

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.
});
原文地址:https://www.cnblogs.com/yiniantt/p/14299489.html