Promise的理解

1.什么是Promise?

1.Promise是异步微任务,解决了异步多层嵌套回调的问题,让代码的可读性更高,更容易维护
2.PromiseES6提供的一个构造函数,可以使用Promise构造函数new一个实例,Promise构造函数接收一个函数作为参数,
  这个函数有两个参数,分别是两个函数 `resolve``reject``resolve`Promise的状态由等待变为成功,将异步
  操作的结果作为参数传递过去;`reject`则将状态由等待转变为失败,在异步操作失败时调用,将异步操作报出的错误作为
  参数传递过去。实例创建完成后,可以使用`then`方法分别指定成功或失败的回调函数,也可以使用catch捕获失败,then
  和catch最终返回的也是一个Promise,所以可以链式调用。

例子:

new Promise(function(resolve, reject){
			setTimeout(function(){
				var num = Math.ceil(Math.random()*20); //生成1-10的随机数
				console.log('随机数生成的值:',num)
				if(num<=10){
					resolve(num);//成功
				}
				else{
					reject('数字太于10了即将执行失败回调');//失败
				}
			}, 2000);
		   })

2.Promise的特点

1. 对象的状态不受外界影响(Promise对象代表一个异步操作,有三种状态)。pending(等待中),Resolved
  (成功,又称Fulfilled),rejected(拒绝) 其中pending为初始状态,fulfilled和rejected为结束状态(结束状态
  表示promise的生命周期已结束)。 
   
2. 一旦状态改变,就不会再变,任何时候都可以得到这个结果。 Promise对象的状态改变,只有两种可能(状态凝固了,就不会
   再变了,会一直保持这个结果): - 从Pending变为Resolved - 从Pending变为Rejected 
   
3. resolve 方法的参数是then中回调函数的参数,reject 方法中的参数是catch中的参数 

4. then 方法和 catch方法 只要不报错,返回的都是一个fullfilled状态的promise
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值