Предположим, у нас есть React Native приложение и веб-приложение. Некоторые браузерные API, включая Local Storage, недоступны в React Native (там используется Async Storage). Как бы вы реализовали единый интерфейс для стора с разными реализациями хранения данных для веба и React Native?

Определите асинхронный интерфейс хранилища и внедряйте платформенный адаптер вместо прямых вызовов localStorage.

Короткий ответ

Что ответить на собеседовании

Определите асинхронный интерфейс хранилища и внедряйте платформенный адаптер вместо прямых вызовов localStorage.

Подробный разбор

Ответ с пояснениями

Определите асинхронный интерфейс хранилища и внедряйте платформенный адаптер вместо прямых вызовов localStorage.

Например: get(key): Promise<string|null>, set(key,value): Promise<void>, remove(key): Promise<void>. Web-адаптер оборачивает синхронные операции, native-адаптер делегирует AsyncStorage. Общий store знает только контракт; ошибки доступа и гидратацию состояния обрабатывают явно, секреты требуют отдельного защищённого хранилища.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее