Приветствую, мне нужно сделать неизвестное кол-во запросов на сервер, до тех пор пока в ответе не будет json-ключа.
request({url:url}, function(err, response, body){
let data = JSON.parse(body);
while(data.nextPageToken !== undefined){
var newUrl = url + '&pageToken=' + data.nextPageToken;
request({url: newUrl}, function(err, response, body){
newUrl = url + '&pageToken=' + JSON.parse(body).nextPageToken;
})
}
})
Отправляется первый запрос, получаю nextPageToken, и повторно выполняю запрос, уже с новым полученным pageToken, и так до тех пор пока nextPageToken перестанет возращаться.
Кол-во итераций - неизвестно, ранее код был таким for(var i = 0; i < data.pageInfo.totalResults / maxResults; i++), поэтому и подумал про while, но запросы все выполняются мгновенно, и собственно запрос отправляется на 2-ой запрос.
Так что мне нужно, асинхронность, или синхронность я вот чего не пойму, как бы реализовать адекватно данную задачу?
--UPDATE
Проще и понятнее, нужно выполнить неизвестное кол-во запросов.
Каждый новый запрос будет состоять из части предыдущего запроса, конечное число итераций определяется отсутствием искомого ключа в ответе.
Просто while начинает отправлять кучу сотен запросов на сервер, которые еще не сформированы из ответа.