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