Promise、Promise.all()、Promise.race()的简单使用

简单介绍一下Promise,就是一个可以进行异步操作的代理对象,在实际工作中有很大的具体实践。下边介绍Promise的几种简单用法

1.新建一个Promise对象
//新建一个promise对象
let testPro = new Promise((resolve, reject) => {
	var num = Math.random() * 10;
	if (num > 5) {
		// resolve返回的值,由then方法执行决定
		resolve('resolve')
	} else {
		// reject返回一个状态为失败的Promise对象,给定的信息将会在catch执行
		reject('reject')
	}
})
testPro.then(res => {
	console.log(res)  // n>5时打印 resolve
})
.catch(err => {
	console.log(err) // n <=5 时打印reject
})
2.新建一个拥有Promise功能的函数
// 返回一个Promise对象即可
let test2 = (n) => {
	return new Promise((resolve, reject) => {
		if (n > 5) {
			resolve('resolve')
		} else {
			reject('reject')
		}
	})
}
test2(4).then(res =>{
	console.log(res) // 无返回
})
.catch(err =>{
	console.log(err) // 打印出 reject
})
3.使用Promise.all()方法的使用

Promise.all()会返回一个新的Promise对象,该promise对象在参数对象里所有的promise对象都成功的时候才会触发成功(resolve),一旦有任何的promise对象失败则立即触发该promise对象的失败(reject)。

let p1 = new Promise((resolve, reject) =>{
	resolve('P1')
});
let p2 = new Promise((resolve, reject) =>{
	setTimeout(resolve('P2'), 1000);
});
// 同时执行p1和p2,并在它们都完成后执行then:
Promise.all([p1, p2]).then((res) =>{
	console.log(res); // 获得一个Array: ['P1', 'P2']
})
.catch(err =>{
	console.log(err)
})
4.Promise.race()方法的使用

Promise.race()会返回一个新的Promise对象,该promise对象在参数对象里只要有一个promise对象成功或者失败,就会触发这个对象的resolve或者reject函数

let p1 = new Promise((resolve, reject) => {
	setTimeout(resolve, 500, 'one');
});
let p2 = new Promise((resolve, reject) => {
	setTimeout(resolve, 100, 'two');
});
Promise.race([p1, p2]).then((res) => {
	console.log(res); // two
});
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值