Два варианта
Сделайте все запросы как можно быстрее, но обработайте результаты последовательно
$.when(...chapter.split(" ").map(word => {
var queryURL = "http://api.giphy.com/v1/gifs/search?q=" + word + "&api_key=<MY API KEY>";
return $.ajax({
url: queryURL,
method: 'GET'
});
})).then((...responses) => {
responses.forEach(response => {
var results = response.data;
..... rest of your done code .....
});
})
Выполнять запросы и обрабатывать результаты последовательно, каждый запрос ожидает предыдущей обработки или не завершен
chapter.split(" ").reduce((p, word) => {
return p.then(() => {
var queryURL = "http://api.giphy.com/v1/gifs/search?q=" + word + "&api_key=<MY API KEY>";
return $.ajax({
url: queryURL,
method: 'GET'
}).then(response => {
var results = response.data;
..... rest of your done code .....
});
});
}, $.when())
Для полноты, поскольку jQuery $ .ajax возвращает thenable
... вы можете использовать Promises
Promise.all(chapter.split(" ").map(word => {
var queryURL = "http://api.giphy.com/v1/gifs/search?q=" + word + "&api_key=<MY API KEY>";
return $.ajax({
url: queryURL,
method: 'GET'
});
})).then(responses => {
responses.forEach(response => {
var results = response.data;
..... rest of your done code .....
});
})
и
chapter.split(" ").reduce((p, word) => {
return p.then(() => {
var queryURL = "http://api.giphy.com/v1/gifs/search?q=" + word + "&api_key=<MY API KEY>";
return $.ajax({
url: queryURL,
method: 'GET'
}).then(response => {
var results = response.data;
..... rest of your done code .....
});
});
}, Promise.resolve());