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