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]