<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>