promise

Promise 三种状态
  • pending(等待)
  • fulfiled(成功)
  • rejected(失败)
Promise的理解
  • 是一个构造函数
  • 处理异步回调
  • 多个异步函数同步处理
  • 封装同意入口或错误处理
  • console.dir(Promise) 在原型上有.then .catch等方法,在原型链上有all resolve reject 等常用方法。
  • Promise有两种状态改变的方式,而且状态只能从pending改变为resolved或者rejected,并且不可逆。当状态变成resolved时会触发.then()方法,当状态改变成rejected时会触发抛出错误方法.catch()
Promise的使用方法
  1. Promise 处理异步回调
function getUserInfo(){
	return new Promise((resolve,reject)=>{
		http('localhost:8081/api/userInfo').then(res=>{
			resolve(res)
		}).catch(err=>{
			reject(err)
		})
	})
}

getUserInfo().then(res=>{
	console.log(res)
}).catch(err=>{
	console.error(err)
})

  1. 多个异步函数同步处理
function getList(url){
	return http(url) //调用接口不做处理
}

const api = ['/article','/article/1','article/2']

let allHttp = api.map(api=>{
	return getList(api)
})

Promise.all(allHttp).then(res=>{
	res.forEach((item,index)=>{
		console.log('第'+index+'次请求成功返回的结果',item)
	})
}).catch(err=>{
	err.forEach((item,index)=>{
		console.log('第'+index+'此请求失败返回的结果',item)
	})
})
  1. 封装统一方法或错误处理
function errorHandler(PromiseFun,callback){
	return PromiseFun.then(res=>{
		callback(res)
	}).catch(err=>{
		this.$confirm.error(err.msg|'请求出错')
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码の搬运工

记录学习,记录认知,记录。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值