// 在多个异步任务中,如果依赖请求结果需要顺序执行这种情况,用Promise可以避免一层一层嵌套代码 function t2(res){ return new Promise(function(resolve){ setTimeout(function(){ console.log('基于:'+res+',执行的第二个ajax') // 模拟ajax回调后,调用后续方法 resolve('第二个回调数据'); },500) }) } function t3(res){ return new Promise(function(resolve){ console.log('第二次ajax请求结束之后,这是:'+res) resolve('第三个') }) } function t4(res){ console.log(res) } var t = new Promise(function(resolve,reject){ setTimeout(function(){ // 模拟ajax回调后,调用后续方法 resolve('第一个ajax请求后的回调数据') },2000) }) t.then(t2) .then(t3) .then(t4)