繁体   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