Я хочу вызывать web api через некоторый интервал через javascript / angular js 1.x.Я должен сделать это, потому что веб-API, который я вызываю, ограничивает количество вызовов в 300 секунд.
Пожалуйста, найдите ниже код, который я пытаюсь заставить его работать.RecordList
- это список объектов, которые мне нужно передать с помощью вызова webapi.setDelay
- это функция, которая добавляет задержку к каждому вызову с помощью функции setTimeout
.
Внутри функции setTimeout
я вызываю webapi, и она успешно создает запись.Я хочу объект или событие или фрагмент кода, который дает мне, что все записи были успешно созданы или нет.Это означает, как узнать, что все обещания внутри функции setTimeout
были решены или нет.Я знаю, что Promise.all
и $q.all
использует, но, похоже, они не работают с функцией setTimeout
.Не могли бы вы предложить что-нибудь для этого?
var waitInterval = 300;
var promiseArray = [];
function setDelay(obj, s) {
setTimeout(function() {
var SomePromise = $http.post('odataURI', obj).then(function success(result) {
//resolve(result);
});
promiseArray.push(SomePromise);
}, waitInterval * s);
}
for (var s = 1; s <= RecordList.length; s++) {
setDelay(RecordList[s - 1], s);
}