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); })