61 lines
1.7 KiB
JavaScript
61 lines
1.7 KiB
JavaScript
/**
|
||
* Цикличная функция запросов к серверу с ожиданием резуьтата
|
||
*
|
||
* П.С. код сырой, но рабочий. Надо подстрич и причесать
|
||
*/
|
||
|
||
|
||
// Функция асинхронного запроса. Ждем в ответе только 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() |