<script>
/*
1、promise的使用
2、promise常用的APi
.all 多个异步都执行完毕以后才会执行.then中的结果
.race 多个异步中如果有一个执行成功就不在去执行另外一个了
3、多个异步如何同步执行
4、如何执行多个ajax Promise.all
promise是一个构造函数 new
每次promise执行完毕以后都会返回一个新的promise
状态:resolve 成功 reject失败
.then中第一个回调是成功的回调 第二个回调是失败的回调
*/
// new Promise((resolve,reject)=>{
// /*异步代码*/
// setTimeout(()=>{
// console.log("111");
// //resolve("123")
// reject("失败")
// },2000)
// }).then((data)=>{
// console.log(data)
// },(err)=>{
// console.log(err);
// })
// var p = new Promise((resolve)=>{
// setTimeout(()=>{
// resolve("第一个值")
// },3000)
// })
// var p1 = new Promise((resolve)=>{
// setTimeout(()=>{
// resolve("第二个值")
// },2000)
// })
// Promise.race([p,p1]).then((data)=>{
// console.log(data)
// })
// Promise.all([p,p1]).then((...rest)=>{
// console.log(rest)
// })
var p1 = new Promise(resolve=>{
setTimeout(()=>{
console.log(111)
resolve()
},4000)
})
var fn = function(){
return new Promise(resolve=>{
setTimeout(()=>{
console.log(222)
resolve()
},3000)
})
}
var fn1 = function(){
return new Promise(resolve=>{
setTimeout(()=>{
console.log(333)
resolve()
},2000)
})
}
var fn2 = function(){
return new Promise(resolve=>{
setTimeout(()=>{
console.log(444)
resolve()
},1000)
})
}
p1.then(()=>{
return fn()
}).then(()=>{
return fn1()
}).then(()=>{
return fn2()
})
</script>