$.ajax({ success: function () { $.ajax({ success: function () { $.ajax({ success: function () { complete(); } }); } }); } });
解決方案:
<script> /* * 拿幾個setTimeout做例子。 * 一秒后輸出1, 然后一秒后輸出2, 然后一秒后輸出3 * 原始做法是一句句嵌套下去 */ setTimeout(function(){ //輸出1 console.log(1); setTimeout(function() { //輸出2 console.log(2); setTimeout(function() { console.log(3); }, 1000); }, 1000); }, 1000); /* * 現在出現了一種比較好的寫法, 就是用Promise.js來簡單來寫 */ var asny = function (text) { var promise = new Promise(function(resolve, reject) { setTimeout(function() { console.log(text); resolve(); }, 1000) }); return promise; } asny("1").then(function(){ return asny("2"); }).then(function () { return asny("3"); }).then(function() { console.log("done"); }); </script>