Size: a a a

2021 June 23

OJ

Oleg Junior in Frontend_ru
сервер иногда возвращает такую ошибку
{
   "error": "too_many_requests",
   "details": {
       "timeout": 4192
   }
}
как примерно реализовать можно, чтобы следующий запрос мне делать только через время в timeout указанное?
источник

Я

Ярик in Frontend_ru
SetInterval можешь сделать
источник

BM

Brs Mdrk in Frontend_ru
тебе нужен дебаунсинг или троттлинг
источник

AD

Alehandro Daminges in Frontend_ru
Вытащи тайм-аут и выполни коллбэк запроса.
В твоём случает лучше setTimeout
источник

AD

Alehandro Daminges in Frontend_ru
Тогда уж дебаунсер
источник

AD

Alehandro Daminges in Frontend_ru
А не троттлинг.
Троттлинг тут не поможет
источник

AD

Alehandro Daminges in Frontend_ru
Я б лучше свою функцию написал для решения такой задачи, потому что дебаунсер тоже не совсем подходит по своей типовой реализации
источник

BM

Brs Mdrk in Frontend_ru
интересное заявление, нужна более веская аргументация
источник

AD

Alehandro Daminges in Frontend_ru
Что дебаунсер, что троттл возвращают функцию которая принимает аргументы на выполнение.
В принципе, ладно, они обе подходят, но применение их в данном случае, на мой взгляд, выглядит как костылик )
источник

BM

Brs Mdrk in Frontend_ru
в js любая функция принимает аргументы на выполнение
источник

BM

Brs Mdrk in Frontend_ru
то есть любая функция - это костыль?
источник

AD

Alehandro Daminges in Frontend_ru
Т.е. получив время, через которое мы должны повторить запрос, мы создаём дебаунсер или тротлер и вызываем их тут же
источник

AD

Alehandro Daminges in Frontend_ru
Да забей, ты уже придираешься ради придраться
источник

BM

Brs Mdrk in Frontend_ru
не,  мне интересно разобраться
источник

BM

Brs Mdrk in Frontend_ru
зачем их создавать и вызывать тут же?
источник

AD

Alehandro Daminges in Frontend_ru
Что дебаунс что троттлер при первом вызове получают функцию первым аргументом, и время, вторым аргументом, возвращают функцию обёртку, которую и нужно вызывать, чтобы выполнить функцию переданную первым параметром в дебаунсер или в троттлер, через указанное время.
Все это описано в доке к дебаунсеру и к троттлеру.
Если не вызвать возвращенную обёртку, то и запланированная функция не будет вызвана
источник

AD

Alehandro Daminges in Frontend_ru
В нашем случае, с чего обсуждение началось, время становится известным после первой попытки запроса
источник

AD

Alehandro Daminges in Frontend_ru
Т.е. заранее мы не знаем через сколько надо повторить попытку
источник

В

Влад in Frontend_ru
коллеги, подскажите плиз в браузере хром есть возможность сделать так чтобы он мнео возвращал 500ую. А то надоело бэк то поднимать то вырубать. Просто если поставить в network disable - то он ваще выдает fail, а не код ошибки
источник

JT

James Town in Frontend_ru
сервер же 500-ю возвращает
источник