我有一个服务,其方法是检查登录用户是否有参数传递的X角色。问题是如果我把它放在“setTimeout”中,只有下一个函数可以工作,否则订阅者什么也得不到。
checkRoles(roles:Array<string>):Observable<boolean>{
let sub = new Subject<boolean>();
this.loggedUser$.subscribe(user=>{
if(!isUndefined(user.roles)){
user.roles.forEach(userRole => {
if(roles.indexOf(userRole.name) !==-1){
//Todo buscar porque en stackoverflow
setTimeout(()=>sub.next(true),1);
}
});
setTimeout(()=>sub.next(false),1);
}
});
return sub.asObservable().first();
}