首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >auth法角度8的可观测误差

auth法角度8的可观测误差
EN

Stack Overflow用户
提问于 2019-10-22 13:00:58
回答 2查看 78关注 0票数 0

我尝试构建一个使用角8登录的auth方法,但是vs代码显示了错误.属性'of‘在“可观察类型”上不存在

顺便说一句,这段代码是一位朋友寄给我的,他在大学的最后一部作品中实现了这段代码。

auth .ts

代码语言:javascript
复制
  private _baseUrl = environment.baseUrl;
    private _userData: UserData;
  token: string;

    constructor(private http: HttpClient) {
    }
   getUserData(): Observable<UserData> {
        if (this._userData && this._timeCheck(this._userData.timestamp, 5)) {
            return Observable.of(this._userData).pipe(delay(0));
        } else {
            this._userData = null;
        }
        if (!this._userData) {
            let userData$=new Subject<UserData>();
            this.http.get<UserData>(`${this._baseUrl}auth/login`).subscribe(this._buildObserver(userData$));
            return userData$.asObservable();
        }else{
            return Observable.of(new UserData()).pipe(delay(0));
        }
    }

 isAuthenticated(): Observable<boolean> {
        if(this.getToken()) {
            let subject = new Subject<boolean>();
            /*this.getUserData().subscribe(
                (userData:UserData)=>subject.next(true),
                error=>subject.next(false),
                ()=>subject.complete());*/
            return Observable.of(true);
        }else{
            return Observable.of(false);
        }
    }

vs代码中的错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-22 13:06:54

您的代码中有一个逻辑错误。即使getUserData()函数得到一个错误,也将返回一个真值,这是错误的。相反,您应该在条件检查之后返回subject值,即

代码语言:javascript
复制
isAuthenticated(): Observable<boolean> {

    // Declare subject here
    let subject = new Subject<boolean>();

    // Initialize it as false
    subject.next(false);

    if(this.getToken()) {
        // Set subject value based on getUserData()
    }

    return subject.asObservable();

}
票数 0
EN

Stack Overflow用户

发布于 2019-10-22 13:05:18

您需要导入它:

角>= 6.0.0

使用RxJS 6.0.0角变化量6.0.0

代码语言:javascript
复制
import { of } from 'rxjs';

并使用它,如:return of(false)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58504922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档