ajax遇到问题:
1、容易造成回调地狱:嵌套太多。
2、让异步的代码有同步的性能。
promise就是解决以上两个问题的
promise的三种状态:
1、Pending(未完成)可以理解为Promise对象实例创建时候的初始状态
2、Resolved(成功) 可以理解为成功的状态(经常使用)
3、Rejected(失败) 可以理解为失败的状态
promise的静态方法:
A、Promise.all([p1,p2,p3...])
将多个Promise实例,包装成一个新的Promise实例
a、所有参数中的promise状态都为resolved是,新的promise状态才为resolved
b、只要p1、p2、p3..之中有一个被rejected,新的promise的状态就变成rejected
B、Promise.race([p1,p2,p3...])
// 竞速,完成一个即可
promise的使用:
<script>
let p1 = new Promise(function (resolved, rejected) {
//成功的回调resolved;失败的回调:rejected
resolved(666);//成功的回调的入口
// rejected();
});
// p1.then(function() {//成功的回调
// console.log('成功了,执行这里');
// },function() {//失败的回调
// console.log('失败了,执行这里');
// });
//拿到异步的数据,传到外面执行,就可以解决嵌套太多的问题,解决回调地狱
p1.then(function (data) {//如果只写一个回调,就是成功的回调
console.log(data);//形参
});
// p1.catch(function() {//失败的回调
// console.log('失败的回调');
// });
</script>