Я надеюсь, что кто-то может помочь мне найти более надежный способ сделать это.
У нас есть 3 URL, которые нельзя изменить.Первый вызов getJSON принимает url1 для получения всех разделов, внутри его функции обратного вызова у нас есть цикл, и на каждой итерации мы делаем второй вызов getJSON, используя url2 + имя раздела для получения всех идентификаторов статей, затем функция обратного вызова для этого второго вызовакаждый идентификатор, чтобы сделать третий вызов getJSON, используя url3 + id, чтобы получить все детали каждой статьи.Здесь больше кода не показано, но основная проблема связана с этим блоком.
$.getJSON(url1, function(sections) {
for(var i=0; i < sections.length; i++) {
$.getJSON(url2 + sections.contents[i].name, function(ids) {
$.getJSON(url3 + ids.contents[0].id, function(article) {
// ==== Code to create article's body using only the first result ====
})
for(var j=0; j < ids.length; j++) {
// ==== Code to create a list of links to all the articles ====
}
})
}})
Я знаю, что должен быть гораздо лучший способ сделать это, но я все еще не знаю как.Структура информации внутри jsons не может быть изменена, поэтому эти вызовы должны быть сделаны на основе результатов предыдущего, но я хочу избежать вызовов внутри цикла. Проблема : Как и следовало ожидать, так как 2-й вызов json находится внутри цикла, иногда результаты первой итерации не поступают, но есть результаты 2-й итерации (когда i = 1в этом случае).
Заранее спасибо за ваше время.