Tôi có đoạn mã sau:Chaining nhiều jQuery ajax yêu cầu
$.when(loadProjects())
.then(function() {
$.when.apply($, buildRequests(projects))
.then(function(data) {
$.when.apply($, vcsRequests(buildTypes))
.then(function(data) {
$.when.apply($, vcsDetailRequests(vcsRoots))
.then(function(data) {
alert('done');
});
});
});
});
Mỗi phòng trong số các chức năng thông qua vào when.apply() mảng trở lại của yêu cầu. Tôi không thể thực hiện các cuộc gọi buildRequests cho đến khi các cuộc gọi từ loadProjects() đã kết thúc khi họ dựa vào thông tin được trả về từ các cuộc gọi đó. Mỗi cuộc gọi phụ thuộc vào thông tin được trả về bởi cuộc gọi trước đó, vì vậy chúng phải theo thứ tự này. Tôi cần biết khi nào tất cả các cuộc gọi đã kết thúc để tôi có thể xử lý dữ liệu được trả lại.
Có cách nào tiếp cận rõ ràng hơn không?
Dường như bạn có nhiều yêu cầu để chuỗi. Sau đó tôi sẽ xem xét kết hợp tất cả các yêu cầu vào một duy nhất .... hiệu quả hơn nhiều so với chuỗi ... –
Làm thế nào tôi sẽ đi về làm điều đó? Tôi phải gọi cái khác vì API tôi đang sử dụng. – JFoulkes
Tôi đã đăng câu trả lời về cách đạt được điều này vì nhận xét không thực sự thích định dạng mã :) –