Я звоню API, в котором реализована нумерация страниц.
Ответ от API:
{
data {
field1 : "value1",
field2: "value2",
},
paginationKey : {
id: "value for id",
some_other_field: "value for other field"
}
}
Значение ключа нумерации страниц указывается в запросе, а значение ответа для ключа нумерации страниц становится ключом нумерации страниц для следующего запроса.
Значение для ключа нумерации страниц будет нулевым для первого запроса, а окончательное значение ключа нумерации страниц в ответе будет нулевым. Поэтому, по сути, я должен вызвать API со значением ключа нумерации страниц, равным нулю, затем любое значение ключа нумерации страниц, которое я получу в ответе, использовать его для второго запроса и продолжать до тех пор, пока значение ключа в ответе не станет нулевым.
Моя проблема в том, что я выполняю ajax-вызов с использованием JQuery для этого API, например
let ajaxPromise = $.ajax({
url: requestUrl,
type: 'GET',
data: requestData, // containing the paginationKey like I mentioned above
// other parameters for AJAX call like crossdomain, timeout etc
})
ajaxPromise.then(function(data) {
successCallBack(data);
}, function(error, errorMessage) {
failureCallBack(error, errorMessage)
})
с successCallBack и failCallBack - методами, которые я определил
Теперь вызов Ajax и последующие обратные вызовы, являющиеся асинхронными в JS, затрудняют выполнение этих запросов в цикле и выход из этого цикла, когда paginationKey ответа становится нулевым.
Как мне этого добиться?