Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2022, 08:56
Новичок на форуме
Отправить личное сообщение для rfnj Посмотреть профиль Найти все сообщения от rfnj
 
Регистрация: 10.11.2021
Сообщений: 7

Ошибка GET запроса к серверу
Здравствуйте я делаю запрос к серверу, но получаю ошибку Failed to fetch. Подскажите где ошибка.

async function httpreq(url, attempts = 8, scanIntervalSET = 6000, errorPauseSET = 5) {
        return new Promise((resolve, reject) => {
        let request = new Request(url,
            {                   
                method: 'GET',
            });
    
        fetch(request).then((response) => {
            if (response.status === 429 || response.status === 2) {
                delayRequestGet(url, attempts, scanIntervalSET, errorPauseSET)
            }
            if (!response.ok) {
                console.log(`Code: ${response.status} Text: ${response.statusText}`);
                reject({ status: response.status, statusText: response.statusText });
            }
            return response.text();
        }).then((nextResponseJSON) =>{ 
            if (nextResponseJSON === null){
                reject('Error!');
            }
            resolve(nextResponseJSON);
        }).catch((error) => {
            console.log(error);
            reject(error);
        });
    });
};
async function delayRequestGet(url, attempts = 8, scanIntervalSET = 6000, errorPauseSET = 5) {
    if (attempts <= 0) {
        await waitTime( (+errorPauseSET  + Math.floor(Math.random() * 5)) * 60000);
        return httpreq(url, attempts = 8);
    }
    await waitTime( 5000 + scanIntervalSET + Math.floor(Math.random() * 50));
    return httpreq(url, attempts - 1);
}

async function waitTime(ms) { return new Promise(resolve => setTimeout(resolve,ms)); }

console.log(JSON.parse(await httpreq("https://api.csgofloat.com/?url=steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M76561198134396556A26851723356D12316397255668564772")));
Ответить с цитированием
  #2 (permalink)  
Старый 21.10.2022, 09:55
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Почему Failed to fetch, сказать трудно.
Откуда делается вызов?
Может быть проблемы с CORS? Посылает ли сервер нужные заголовки?

А вообще логика асинхронности не очень понятна.
Зачем async function httpreq, если и так возвращается Promise и внутри нет await?

Если сработает условие из строки 10, то повторно вызовется httpreq (через delayRequestGet после таймаута), но его значение никуда не вернется.

Строка 39 JSON.parse(await httpreq
await можно использовать только внутри async функций или на верхнем уровне, но только в модулях.

Последний раз редактировалось voraa, 21.10.2022 в 09:58.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде, часть кода с ошибкой и сама ошибка ниже Сахар Node.JS 5 23.08.2021 21:08
Отправка GET запроса по таймеру DmitryR AJAX и COMET 8 18.05.2021 16:33
Ошибка Uncaught TypeError: Cannot read property '1' of null? orb jQuery 12 18.11.2020 03:12
Отправка запроса серверу - ReferenceError zalza AJAX и COMET 0 28.11.2012 15:01
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07