This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // простая функция-пауза | |
| const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); | |
| /** | |
| * Повторяет выполнение асинхронной операции с линейным ростом задержки | |
| * @param {Function} operation - асинхронная функция, которую нужно выполнить | |
| * @param {number} maxAttempts - максимальное количество попыток | |
| * @param {number} baseDelay - начальная задержка (в мс) | |
| * @param {number} step - насколько увеличивать задержку после каждой ошибки | |
| */ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); | |
| async function simpleRetry(fn, retries = 3, delay = 1000) { | |
| try { | |
| return await fn(); | |
| } catch (error) { | |
| if (retries <= 0) throw error; | |
| await sleep(delay) | |
| return simpleRetry(fn, retries - 1, delay); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Функция "сон" — приостанавливает выполнение на указанное количество миллисекунд | |
| const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); | |
| // Вычисляет задержку для каждой попытки по экспоненциальной формуле | |
| function getBackoffTime(attempt, baseDelay, multiplier) { | |
| // умножаем базовую задержку на фактор, возведённый в степень номера попытки | |
| return baseDelay * Math.pow(multiplier, attempt); | |
| } | |
| // Основная функция повторных попыток с экспоненциальным ростом интервала |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Функция "сон" — приостанавливает выполнение на указанное количество миллисекунд | |
| const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); | |
| // Вычисляет задержку для каждой попытки по экспоненциальной формуле | |
| function getBackoffTime(attempt, baseDelay, multiplier) { | |
| // умножаем базовую задержку на фактор, возведённый в степень номера попытки | |
| return baseDelay * Math.pow(multiplier, attempt); | |
| } | |
| // Основная функция повторных попыток с экспоненциальным ростом интервала |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); | |
| async function simpleRetry(fn, retries = 3, delay = 1000) { | |
| try { | |
| return await fn(); | |
| } catch (error) { | |
| if (retries <= 0) throw error; | |
| await sleep(delay) | |
| return simpleRetry(fn, retries - 1, delay); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| When declaring functions on the top-level of a module, | |
| declare their return types. | |
| ```ts | |
| const myFunc = (): string => { | |
| return "hello"; | |
| }; | |
| ``` | |
| One exception to this is components which return JSX. |