Устранить баги и повысить эффективность
Очистка интервала в показанном коде уже есть. Проблема в restProps: деструктуризация создаёт новый объект на каждом рендере, поэтому эффект с [restProps] запускается каждую секунду.
Читать ответПодготовка к интервью
3834 вопроса с собеседований в Сбер
Что проверяют на интервью
Подборка объединяет вопросы, отмеченные на этапах интервью в Сбер. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, sql, backend.
Каталог
Очистка интервала в показанном коде уже есть. Проблема в restProps: деструктуризация создаёт новый объект на каждом рендере, поэтому эффект с [restProps] запускается каждую секунду.
Читать ответСохраняйте результаты по индексам и считайте число незавершённых промисов. Пустой массив разрешается сразу, любое отклонение передаётся в reject итогового Promise.
Читать ответКонсоль выведет F, G, L, T. Executor Promise выполняется сразу, затем идёт обычный console.log, потом обработчик then и лишь после него таймер.
Читать ответПриведённая рекурсивная функция уже корректна: сумма узлов равна 328, поэтому второй console.log выведет true. Каждый узел добавляется ровно один раз.
Читать ответПеречисленные в описании ошибки уже отсутствуют: эффект не async, зависимости [] есть, scroll написан верно и слушатель удаляется. Исправить стоит начальный scroll и поздний ответ запроса.
Читать ответПри обновлении только state внутри MainFc OtherFc не обязан рендериться заново: children остаётся тем же JSX-объектом, созданным App. Сам App из-за этого состояния не обновляется.
Читать ответuseEffect должен возвращать очистку, а не Promise. Запустите асинхронную работу внутри эффекта, сохраните одну ссылку на scroll-обработчик и игнорируйте поздний ответ.
Читать ответДля имитации запускайте задачи последовательно через await, измеряйте их длительность и обновляйте число выполненных запросов. Повторный Start блокируйте до завершения.
Читать ответИспользуйте conditional type: C extends true ? Then : Else. Ограничение C extends boolean задаёт допустимый параметр условия.
Читать ответСделайте ContainerFc generic-функцией, выводящей props из переданного Component. NoInfer не позволит другим входным props изменить этот выведенный контракт.
Читать ответВ async-функции пройдите массив через for...of и используйте await перед вызовом следующего поставщика. Так операции не стартуют одновременно.
Читать ответБудут выведены Шаг 2, Шаг 4, Шаг 3, Шаг 1. Executor Promise вызывается синхронно, а обработчик then — после завершения текущего стека.
Читать ответ