CanActivate
class разрешает возврат типа Observable<boolean>
.Почему CanActivate с угловым 2 возвращает Observable <boolean> вместо обещания?
Единственные случаи использования, которые имеют смысл для меня являются:
CanActivate
может «асинхронно» блокировать маршрут отображается до тех пор, покаobserver.next(true|false)
называется.- Я мог отобразить маршрут, который
CanActivate
позволяет затем нажатьobserver.next(false)
из другой части моего приложения и исчезнет этот маршрут.
Однако, пункт один работает, но не второй. Поэтому я не могу найти причину, по которой CanActivate
должен допускать возврат типа Observable<boolean>
, кроме удобства, что, в свою очередь, усложняет API. Было бы более чистым, если бы CanActivate
разрешал только boolean
тип возврата и Promise
.
Обратите внимание, что я новичок в Angular, RxJS и обо всем, на чем основано Node, поэтому мне может быть недостает очевидного. Я потратил некоторое время, пытаясь извлечь функциональность от CanActivate
, что подразумевает тип возврата Observer<boolean>
.
Это их решение не использовать обещания, заменяя их Observables. У вас наверняка есть Observable, который просто возвращает одно значение до завершения, все вызовы http теперь обещают, например. –
Почему бы не спросить разработчиков, которые построили маршрутизатор, на котором базировался маршрутизатор v3? [Создать вопрос] (https://github.com/ngrx/router/issues), задайте вопрос, и вы, скорее всего, получите ответ. – cartant
Хорошо. Не был уверен, был ли это глупый вопрос. – Dan