Выбор ответа Middle Нативные модули обновлено
TurboModule: синхронные методы
Вопрос
Когда допустим синхронный метод TurboModule, например isLowPowerMode(): boolean?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Когда натив отвечает мгновенно, например читает флаг или константу. JSI позволяет синхронный вызов, но JS-поток ждёт, пока натив не вернёт результат.
Варианты ответа
- Всегда: синхронные вызовы через JSI бесплатны и ничего не блокируют
- Когда натив отвечает мгновенно, например читает флаг или константуправильный ответ
- Никогда: TurboModules поддерживают только методы, возвращающие
Promise - Только на iOS, а на Android синхронные методы TurboModule недоступны
Разбор
JSI позволяет синхронный вызов, но JS-поток ждёт, пока натив не вернёт результат. Для чтения флага это микросекунды, а для работы с диском или сетью это заморозка интерфейса. Асинхронные методы возвращают Promise, и натив может выполнить работу в фоне. Синхронные методы поддерживаются на обеих платформах.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.