【发布时间】:2021-06-01 12:40:26
【问题描述】:
在我的 Angular-11 项目中,我在身份验证服务中有以下代码:
login(data: {
username: string;password: string;rememberMe: boolean
}): Observable < any > {
const {
username,
password,
rememberMe
} = data;
const loginData: OauthInterface = {
['grant_type']: PASSPORT_CLIENT.grantType,
['client_id']: PASSPORT_CLIENT.clientId,
['client_secret']: PASSPORT_CLIENT.clientSecret,
username,
password,
scope: '',
};
// const url = `oauth/token`;
const url = `${API_URL}/oauth/token`;
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
})
};
return this.http.post < any > (url, loginData, httpOptions)
.pipe(
tap(user => rememberMe ? localStorage.setItem('currentUser', JSON.stringify(user)) : ''),
tap(user => !rememberMe ? sessionStorage.setItem('currentUser', JSON.stringify(user)) : ''),
tap(user => this.currentUserSubject.next(user)),
tap(user => this.currentUserSubject.next(user)),
this.currentUserDetails().subscribe(),
catchError(error => throwError(error))
);
}
currentUserDetails(): Observable < any > {
const url = `${API_URL}/api/user`;
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
})
};
return this.http.get < any > (url, httpOptions)
.pipe(map(user => {
this.store.dispatch({
type: '[APP STATE] set logged in user',
payload: user
});
this.currentUserSubject.next(user);
return user;
},
() => {
// Error Has been captured by interceptor
}
));
}
我收到了这个错误:
“Subscription”类型的参数不能分配给“OperatorFunction
”类型的参数。 类型“订阅”不匹配签名“(来源:Observable):Observable”
这一行被高亮显示:
this.currentUserDetails().subscribe(),
如何解决?
谢谢
【问题讨论】:
标签: angular