RouteNavigator.runSync

Последовательно вызывает методы объекта RouteNavigator с гарантией, что все вызовы будут завершены одновременно.

Важно! Не запускайте несколько экземпляров runSync одновременно. Это может привести к race condition – состоянию, когда несколько процессов пытаются одновременно получить доступ к одному и тому же ресурсу и результат становится непредсказуемым.

Чтобы избежать ошибок, не используйте метод runSync с другими переходами в навигации.

Пример

TypeScript
import { useRouteNavigator } from '@vkontakte/vk-mini-apps-router'; export function SomePage() { const routeNavigator = useRouteNavigator(); // Задаём массив вызовов const foo = [ () => routeNavigator.back(-2), () => routeNavigator.replace('/'), () => routeNavigator.push('/persik') ]); return ( // Вызов метода <Button onClick={() => routeNavigator.runSync(foo) }>Сложный переход</Button> ); }

Объявление

TypeScript
runSync(actions: VoidFunction[]): Promise<void>;

Параметры

Параметр
Тип
Описание
action обязательный
VoidFunction[]
Массив функций, каждая из которых вызывает метод объекта RouteNavigator. Важно! Каждая из функций должна вызывать только один метод.

Результат

Объект Promise, который разрешается при успешном выполнении перехода. Работает в служебных целях. Использовать этот объект в своём коде, как правило, нет необходимости.

Материалы по теме