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, который разрешается при успешном выполнении перехода. Работает в служебных целях. Использовать этот объект в своём коде, как правило, нет необходимости.
Материалы по теме
- •
- •
- •
- •
- •