es6 Promise的用法

Promise是个对象,类似于一个事情,事情会有成功和失败,只要触发一个,事情就结束了。

		new Promise(function(Resolved,Rejected){
			Rejected();
		}).then(function(){
			alert('成功!');
		},function(){
			alert("是失败!");
		})
  • then(成功函数,失败函数);
  • then(成功函数).catch(失败函数);
  • Promise可以无限回调,且当前的函数参数是上一个then的return返回值
new Promise(function(Resolved,Reject){
			Resolved('哈哈哈');
		}).then(function(x){
			console.log(x);
			return '19931210';
		}).then(function(x){
			console.log(x + 'x'); //这个then是第一个then的回调函数,参数x是第一个 then的return的返回值
		});

race 竞速方法

可以用来测试代码的运行速度,只看第一个promise,成功就是成功,失败就是失败

Promise.race([new Promise((Resolved,Rejected) => {
			// Resolved('1111');
			setTimeout(Resolved,1100,'1111');
		}),new Promise((Resolved,Rejected) => {
			// Resolved('2222');
			setTimeout(Resolved,1000,'2222');
		}),new Promise((Resolved,Rejected) => {
			// Resolved('3333');
			setTimeout(Resolved,1300,'3333');
		})]).then((x) => {
			console.log(x);
		}).catch(() => {
			
		});  //运行结果2222

all规整方法

要不然就是全胜,要不然就是失败
都成功的时候执行then,事件按照最长的事件计算
第一个失败了,就全部失败了,失败事件按最早的计算

Promise.all([new Promise((Resolved,Rejected) => {
			// Resolved('1111');
			setTimeout(Resolved,1000,'111');
		}),new Promise((Resolved,Rejected) => {
			// Resolved('2222');
			setTimeout(Resolved,5000,'222');
		}),new Promise((Resolved,Rejected) => {
			// Resolved('3333');
			setTimeout(Resolved,10000,'333');
		})]).then((x) => {
			console.log(x);
		}).catch(() => {
			console.log(2);
		}); //["111", "222", "333"]

20200523

这些只是表面的意思,更多内容:[https://www.liaoxuefeng.com/wiki/1022910821149312/1023024413276544]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值