Đó là cách tôi thực hiện:Whats cách thông minh nhất/sạch nhất để lặp lại async qua mảng (hoặc objs) là gì?
function processArray(array, index, callback) {
processItem(array[index], function(){
if(++index === array.length) {
callback();
return;
}
processArray(array, index, callback);
});
};
function processItem(item, callback) {
// do some ajax (browser) or request (node) stuff here
// when done
callback();
}
var arr = ["url1", "url2", "url3"];
processArray(arr, 0, function(){
console.log("done");
});
Có tốt không? Làm thế nào để tránh những mã spaghetti'ish?
Với jQuery, bạn có thể sử dụng '$ .each ([...], function() {...});' và sẽ có các phương thức tương tự trong các thư viện JS khác. –
Có, nhưng chúng là đồng bộ. Aron hỏi về các vòng không đồng bộ, một vấn đề thú vị hơn nhiều! –
năm 2016 và tôi đã sử dụng ngày hôm nay. Có lẽ nên nhìn vào ES6 nhưng ... cảm ơn! – Squidinker