Kể từ khi sử dụng $.Deferred
Tôi đã chạy vào kịch bản này một vài lần: Tôi có một danh sách các giá trị mà mỗi giá trị mang lại một Đối tượng bị trì hoãn theo một cách nào đó và tôi muốn thực hiện gọi lại sau khi tất cả Đối tượng trì hoãn được giải quyết.Xử lý các mảng của các đối tượng trì hoãn
Một ví dụ cụ thể hơn sẽ là một cái gì đó như thế này:
var urls = [ 'foo.com', 'bar.com', 'baz.com', 'qux.com' ],
defers = [], defer;
for(var i = 0, j = urls.length; i < j; i++){
defer = $.ajax({
url: 'http://' + urls[ i ]
});
defers.push(defer);
}
$.when.apply(window, defers).done(function(){
// Do Something
});
Có một giải pháp thanh lịch hơn so với mã trong ví dụ của tôi?
Tại sao bạn nghĩ rằng, điều này không thanh lịch? – topek
Sau khi viết mã như thế này cho lần thứ 3, tôi bắt đầu nghĩ rằng đó là một kịch bản khá phổ biến và có thể được xử lý bởi khung công tác Deferred Objects theo cách tốt hơn mà tôi chỉ đơn giản là nhìn. –