Skip to content

Instantly share code, notes, and snippets.

@vanya2h
Last active July 5, 2021 11:01
Show Gist options
  • Save vanya2h/eabfac9ebe3298092498e6ae993774a7 to your computer and use it in GitHub Desktop.
Save vanya2h/eabfac9ebe3298092498e6ae993774a7 to your computer and use it in GitHub Desktop.
Вопросы:
1. Что такое Promise. Как javascript engine справляется с асинхронным кодом, если он имеет всего один поток
2. Расскажите в чем смысл pub-sub pattern'а
3. Что такое наследование. Что за ключевые слова: extends, super, private, public, protected, this?
4. Как работать с сетевыми запросами в браузере? Какие апи существуют и какие лучшие практики?
5. Что делает ключевое слово const для объектов и для примитивных типов
6. Как можно оптимизировать приложение на react. Какие лучшие практики
Задачи:
1. Напишите функцию retry,
которая будет повторять попытки зарезолвить promise thunk, пока число попыток не привысит numOfRetry
В случае ошибки будет rejected promise с последней ошибкой
function retry<T>(numOfRetry: number, delay: number, action: () => Promise<T>): Promise<T> {
// @todo
}
2. Напишите функцию flatten, которая сможет обрабатывать вложенные массивы и превращать в один плоский массив
Пример:
[[1, 2], 3] => [1, 2, 3]
3. Доработайте решение 2 задачи таким образом, чтобы функция могла принимать бесконечно вложенные массивы
4. Напишите функцию memo, которая будет принимать функцию и возращать функцию, которая будет запоминать результаты выполнения и брать из кэша, если аргументы когда-либо повторялись. Алгоритм сравнения аргументов - shallow equal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment