// 在多個異步任務中,如果依賴請求結果需要順序執行這種情況,用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)