ES 6 Promise对象

Promise是异步编程解的一种解决方案。
Promise有三种状态:
1.pending(进行中)
2.resolved(已完成,又称Fulfilled)
3.rejected(未完成)
这三种状态一旦完成,就不会改变,任何时候都可以得到这个结果。Promise的状态改变只有两种可能,一:从‘pending’到‘resolved’(从进行时到成功)和二:从‘pending’到‘reject’(从进行时到失败)。
Promise对象的创建:
let 变量 = new Promise(function(resolve,reject){
resolve();//成功时调用的结果
});

简写的方式:
let 变量 = new Promise((resolve,reject) => {});

其中两个函数(resolve和reject)当作参数,是JavaScript提供的,不需要自己添加,也是固定的参数;
调用Promise需要使用then方法:
变量.then(参数){
console.log(参数)
};
还有一种Promise链式编程,即:
变量.then(参数){
console.log(参数);
}.then(参数){
console.log(参数);
};
(需要几个就写几个);
实例:
因时间原因而造成的无序执行,可以使用Promise让其按照排列顺序进行执行代码

/*创建Promise实例*/
let p1 = new Promise(function(resolve,reject){
	setTimeout(() => {
	/*如果未排序的情况下,会根据设置时间来显示console.log('异步1')的结果*/
		console.log('异步1');
		resolve('1.异步');
	},3500);
});
let p2 = new Promise(function(resolve,reject){
	setTimeout(() => {
	/*如果未排序的情况下,会根据设置时间来显示console.log('异步1')的结果*/
		console.log('异步2');
		resolve('2.异步');
	}, 800);
});
let p3 = new Promise(function(resolve,reject){
	setTimeout(() => {
	/*如果未排序的情况下,会根据设置时间来显示console.log('异步1')的结果*/
		console.log('异步3');
		resolve('3.异步');
	},1500);
});
/*使用Promise链式编程进行实例调用,会让上面的value按照顺序排列显示*/
p1.then(function(value){
	console.log(value);
	return p2;
}).then(function(value){
	console.log(value);
	return p3;
}).then(function(value){
	console.log(value);
	return p1;
})

原因是:在 JavaScript 事件队列的当前运行完成之前,回调函数永远不会被调用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值