Promise异步处理的简单了解

Promise对象是一个构造函数,用来生成Promise实例,(Promise对象对象存在三状态:pending(进行中)、fulfilled(已成功)、reject(已失败)),而且只有异步操作的结果,可以决定是哪一种状态,任何其他操作都无法改变这个状态。
Promise对象的状态改变,只有两种可能:从pending变为fulfilled和pending变为rejected。只要这两种情况发生,状态就凝固了,不会再变,会一直保持这个结果,这时就称为 resolved(已定型)
1.下面就是一个promise实例:

var promise = new Promise((resolve , reject)=>{
	if(/*异步操作*/){
		resolve();
	}else{
  		reject();
  }
})

Promise构造函数接受一个函数作为参数,该函数有两个参数(resolve , reject),他们也是函数:

  1. resolve函数:将Promise对象的状态从 pending(未完成) ==> resolved(成功),在异操作成功时调用,并将异步操作结果,作为参数传递出去
  2. reject函数:将Promise对象的状态从 pending(未完成) ==> rejected(失败),在异操作成功时调用,并将异步操作报错作为参数传递出去
    2.实例生成之后,可以用then方法分别指定resolved状态和rejected状态的回调函数
promise.then( value => {//success} , error =>{ //failure})

then方法可以接受两个回调函数,第一个回调函数时Promise对象的状态变为resolved时调用。其中,第二个函数是可选的,不一定要提供。
一个简单的的例子:

function timeout(pro){
	return new Promise((resolve , reject) =>{
		setTimeout(resolve , pro, 'done');
})
}
	timeout(100).then((value) =>{
 		console.log(value)
 })
 //上面代码中,timeout方法返回一个Promise实例,表示一段时间以后才会发生的结果。过了指定的时间(pro)以后,Promise实例的状态变为resolved,就会触发then方法绑定的回调函数

全面的参考链接:本人参考的地方,写的很好,可以去看看

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值