$.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>