[英]Angular Guard - how to make canActivate wait for a value?
我有一個依賴客戶的警衛。 守衛沒有按預期工作,因為客戶端在守衛被擊中時還沒有准備好。 我如何讓警衛等到客戶准備好?
public canActivate() {
if (this.ffService.getFlag(FLAG)) {
// KEEPS HITTING HERE BECAUSE CLIENT IS NOT READY
return observableOf(true);
}
// NEEDS TO MAKE IT TO THE LOGIC BELOW HERE
}
在功能標志服務中:
getFlag(flag) {
if (!this.ffClient.isReady()) {
// KEEPS HITTING HERE
return false;
}
return this.ffClient.find(flag);
}
我已經嘗試添加重試邏輯以繼續檢查 isReady() 是否已就緒,但這只是讓守衛不加載任何東西。
嘗試這個:
public canActivate(): Observable<boolean> {
return this.ffservice.getFlag(FLAG).pipe(
filter(flag => flag), // will only pass if flag exists and(or if it's an obj) it's true
mapTo(true)
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.