Циклические запросы
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