簡體   English   中英

聲明類型既不是“void”也不是“any”的函數必須返回一個值 Angular

[英]A function whose declared type is neither 'void' nor 'any' must return a value Angular

之前使用 observable 類工作正常時出現此錯誤


  login(userId: string, userPassword: string): Observable<User> {          >>> I am getting error here
        this.http.post(this.Url,'/' + {userId} + '/' + {userPassword})
            .pipe(map(user => {
                // store user details and jwt token in local storage to keep user logged in between page refreshes
                localStorage.setItem('currentUser', JSON.stringify(user));
                this.currentUserSubject.next(user);
                return user;
            }));
    }

這是界面

 export interface User {
         success:string
         userId:string
         userPassword:string
         token?: string
    }

您錯過了此之前的return this.http.post並使用tap

  login(userId: string, userPassword: string): Observable<User> {     
      return this.http.post(this.Url,'/' + {userId} + '/' + {userPassword})
            .pipe(tap(user => {
                // store user details and jwt token in local storage to keep user logged in between page refreshes
                localStorage.setItem('currentUser', JSON.stringify(user));
                this.currentUserSubject.next(user);
            }));
    }

兩個變化

  • 類型轉換用戶

  • 返回 Observable

     login(userId: string, userPassword: string): Observable<User> { return this.http.post(this.Url,'/' + {userId} + '/' + {userPassword}) .pipe(map(user => { // store user details and jwt token in local storage to keep user logged in between page refreshes localStorage.setItem('currentUser', JSON.stringify(user)); this.currentUserSubject.next(user); return (user as User); })); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM