diff --git a/js/ajax/loop_ajax.js b/js/ajax/loop_ajax.js new file mode 100644 index 0000000..51ff0c7 --- /dev/null +++ b/js/ajax/loop_ajax.js @@ -0,0 +1,61 @@ + /** + * Цикличная функция запросов к серверу с ожиданием резуьтата + * + * П.С. код сырой, но рабочий. Надо подстрич и причесать + */ + + + // Функция асинхронного запроса. Ждем в ответе только JSON + async function requestJSON(url){ + return await fetch(url).then((response)=>{ + if (!response.ok){ + throw new Error('Err::'+response.statusText) + }else{ + headers = {} + + response.headers.forEach((v,k)=>headers[k]=v) + + if(headers){ + if (headers['content-type'] == "application/json"){ + return response.json() + }else{ + alert('Err::Ответ не в формате JSON\n('+headers['content-type']+')') + throw new Error('Err::Ответ не в формате JSON') + } + } + } + }) + } + + // Функция запроса. Закускается, пока длина массива > 0 + async function respnos(){ + + data = await requestJSON("http://uurl") + + if(data.length){ + getDataResurs(data) + } + + all.innerHTML=data.length + + + } + + // Функция обработки запроса и ответа + async function getDataResurs(data){ + + if (data.length < 2713){ + dd = await requestJSON("http://uurl") + } + + + data.shift(); + + if(data.length>0){ + console.log(data.length) + return getPekRaschet(data) + } + } + + // Первый запуск + respnos() \ No newline at end of file