#javascript #angular #typescript #angular-routing #angular-router-guards
#язык JavaScript #угловой #машинописный текст #угловая маршрутизация #угловой маршрутизатор-ограждения
Вопрос:
В настоящее время я использую службу canActivate-service для моего углового родительского маршрута и, следовательно, для всех дочерних маршрутов. выглядит так, например
const routes: Routes = [ { path: '', canActivate: [ServiceWhichShouldRunEvery10Minutes], runGuardsAndResolvers: 'always', children: [ { path: routeA, component: a, }, { path: routeB, pathMatch: 'full', component: b, },...
canActivate-метод
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promiselt;boolean | UrlTreegt; { // condition that i want to check every 10 minutes }
Как я могу гарантировать, что эта служба canActivate будет запускаться каждые 10 минут? Заранее спасибо, любая помощь будет признательна
Комментарии:
1. Я предполагаю, что это невозможно,
canActivate
потому что это срабатывает только при навигации, и я не знаю возможности запустить его вручную. Почему это должно быть внутриcanActivate
? Может быть, вместо этого поместите его в компонент приложения?2. Да, такое поведение не относится к задачам маршрутизации. Используйте службу, например, с интервалом, чтобы выполнять то, что вам нужно делать каждые 10 минут. или, если вам нужен только один компонент, сделайте это там. На будущее, хотя при необходимости в другом месте услуга является хорошим выбором 🙂