我找到了获取 IP 地址的服务示例。
该服务返回一个Observable<Object>,我想将它分配/保存到一个字符串变量。
getIpAddress() {
return this.http
.get('https://api.ipify.org/?format=json')
.pipe(
catchError(this.handleError)
);
}
我仍然没有很好地“训练” Observables。我已经将此服务注入到我自己的服务(身份验证服务)中,我试图在其中访问实际值,这将是一个字符串。
我知道我必须订阅和管道/地图才能使用它,但这就是我迷路的地方......
console.log(this.visitorService.getIpAddress().subscribe(ip => this.ipAdress = ip ?? ));
最后,我想在我的登录方法中使用 IP 地址(字符串)(console.log 将被替换,API 收到第三个正文参数):
login(username: string, password: string): Observable<User> {
// der globale interceptor (jwt) hängt halt auch hier das authorization header feld hinzu; macht nichts
console.log(this.visitorService.getIpAddress().subscribe(ip => this.ipAdress = ip ?? ));
return this.http.post<UserRaw>(
`${environment.apiUrl}/login`, { username, password } )
.pipe(map(userRaw => UserFactory.fromRaw(userRaw)))
.pipe(map(user => {
// local storage = client persistence (user bleibt eingeloggt)
localStorage.setItem('currentUser', JSON.stringify(user));
this.currentUserSubject.next(user);
// console.log(user.username);
return user;
}));
更新
this.visitorService.getIpAddress().subscribe(ip => { console.log(ip); } );
返回控制台中的 IP 对象

但之后,我无法访问或转换它:
this.visitorService.getIpAddress().subscribe(ip => { this.ipAdress = ip.ip } );
慕哥6287543
慕村225694
PIPIONE
随时随地看视频慕课网APP
相关分类