var flag = true; var message = '我是初始值' var p = new Promise(function(resolve,reject) { setTimeout(()=>{ if (flag) { resolve('異步加載成功') // 傳遞的至關於掉完接口獲得的data }else { reject('失敗') // 傳遞的至關於掉接口失敗所得的信息 } },5000) }) // .then()方法傳遞兩個參數都是function,第二個參數的函數不是必填,也可寫在.catch()方法裏和.then同級 p.then(function (aaa) { // 第一個參數用來接收成功的data並進行處理 message=aaa // console.log(message); },function (bbb) { // 第二個參數用來接收失敗的信息並進行處理 message = bbb // console.log(message); }) // console.log(message); // .all()方法同時處理多個異步任務,全部任務完成才能返回結果 // .race()方法同時處理多個異步任務,只要有一個任務完成就能返回結果 function pp(text,time) { return new Promise(function(resolve,reject) { setTimeout(()=>{ if (flag) { resolve(text) // 傳遞的至關於掉完接口獲得的data }else { reject('失敗') // 傳遞的至關於掉接口失敗所得的信息 } },time) }) } // pp('我成功了',3000).then((data)=>{ // console.log(data); // }) Promise.all([pp('111',1000),pp('222',2000),pp('333',3000)]).then((data)=>{ console.log(data); }) Promise.race([pp('111',1000),pp('222',2000),pp('333',3000)]).then((data)=>{ console.log(data); })