Я использую библиотеку gpapi , чтобы найти Play Store и сохранить информацию о приложениях, найденных в Play Store. Я начинаю с поиска соответствующих приложений приложения (около 20 приложений), после чего запрашиваю подробную информацию о каждом из них. Это делается библиотекой как запросы обещаний. Я попытался добавить задержку между запросами, так как в текущем состоянии все запросы выполняются одновременно, поэтому я получаю ошибку 429 (слишком много запросов), и через некоторое время я временно полностью забанен на серверах Google.
function getRelatedApps(pkg) {
api.login()
.then(function () {
api.related(pkg).then(function (res) {
for (let key in res['0'].child) {
let appId = res['0'].child[key].docid;
if (!storedApps.has(appId)) {
relatedArray.add(appId);
}
}
Promise.map(relatedArray, function (appId) {
getInfo(appId);
}, {concurrency: 1});
});
});
}
Я попытался добавить Promise.delay
между каждым запросом и использовать функцию setTimeout
без какого-либо эффекта, поскольку запросы все еще выполнялись одновременно.
При использовании while l oop с setTimeout
внутри, вообще не было выполнено ни одного запроса.
Как можно сделать паузы между каждым вызовом функции getInfo
?