Циклические запросы
This commit is contained in:
61
js/ajax/loop_ajax.js
Normal file
61
js/ajax/loop_ajax.js
Normal file
@@ -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()
|
||||
Reference in New Issue
Block a user