зависит от того, откуда берутся элементы списка. если они поступают из списка или базы данных, просто добавьте их, а затем используйте javascript для поиска в списке.
Сегодня, если мне нужно сделать это последовательно - я бы сделал это с async/await
:
//I'm assuming I'm inside an `async` function
zippyarray; // array of Zippy objects
for(const task of zippyArray) {
const result = await $.get({ ... });
// do stuff with result
}
Чтобы отслеживать несколько запросов get-Requests, вы используете этот способ:
var cnt = requestCnt;
function finished(){
if(--cnt)return;
// Your code here
}
for(var i = 0; i < requestCnt; ++i){
$.get('something.htm', {data:data}, function(data){
finished();
});
}
Вы всегда вызываете законченную функцию, когда запрос получает ответ. Завершенная функция выполняет задание, когда все делается.
Я знаю, что это старый вопрос, но в последнее время ситуация немного изменилась.
Если вы в порядке с использованием внешних библиотек, библиотека обещаний Bluebird имеет довольно хорошую реализацию для этого: Promise.each .
Например,
function helperFunc(zippyarray) {
return Promise.each(zippyarray, zippy => {
return someOperationThatReturnAPromise(zippy)
.then((singleResult) => {
// do something with the operation result if needed
})
}).then((originalArray) => {
// this happens only after the whole array is processed
// (result is the original array here)
return Promise.resolve(originalArray)
})
}