promise 基本用法

const promise =new Promise ((resolve, reject)=>{ 
	if (/* 异步操作成功 */){
    resolve(res);
  } else {
    reject(error);
  }
})
注:promise是构造函数,传入一个参数,参数是异步函数
异步函数两个参数resolve(绑定异步执行成功状态)、reject(绑定异步执行失败状态)
.then方法(指定resolve状态和reject状态的回调函数)
	promise.then(res=>{
		console.log(res)
	},error=>{
		console.log(error)
	})
.catch方法(较好的做法.then里面定义resolve状态回调.catch里面定义reject状态)
promise.then(
	res = >{
		console.log(res)
	}
).catch(
	error = >{
		console.log(error)
	}
)
.finally方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。(不传参数)
promise.then(res = >{ 
	console.log(res)}
).catch(error=>{
	console.log(error)
}.finally(
	console.log("不管对错一定执行")
)
Promise.all([p1,p2,p3])参数是Promise实例数组—方法返回新的Promise实例
只有p1、p2、p3的状态都变成fulfilled,p的状态才会变成fulfilled
只要p1、p2、p3之中有一个被rejected,p的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数。
const promises = [2, 3, 5, 7, 11, 13].map(function (id) {
  return getJSON('/post/' + id + ".json");
});

Promise.all(promises).then(function (posts) {
  // ...
}).catch(function(reason){
  // ...
});
Promise.race([p1, p2, p3])参数是Promise实例数组—方法返回新的Promise实例
只要p1、p2、p3之中有一个实例率先改变状态,新的promise实例的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数。
const p = Promise.race([
  fetch('/resource-that-may-take-a-while'),
  new Promise(function (resolve, reject) {
    setTimeout(() => reject(new Error('request timeout')), 5000)
  })
]);

p
.then(console.log)
.catch(console.error);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值