我想从组件中使用的所需数据是
.subscribe(setting => {
this.retrievedSettings = setting;
return this.retrievedSettings;
});
但是,返回的数据是一个Observable,我无法(或不知道如何)获得所需的对象数据。
我尝试保存
this.retrievedSettings = setting;
到另一个可观察到的东西,但是没有用;
服务
retrievedSettings : SettingsModel;
async getUserSettings(userID : string) {
const firebaseToken = await
this.angularFireAuth.auth.currentUser.getIdToken(true);
let searchParams = new HttpParams();
searchParams = searchParams.set('auth', firebaseToken);
searchParams = searchParams.append('id', userID);
return this.http.get<{ [userID: string]: SettingsModel }>(API.DB_URL + API.userSettings,
{
params: searchParams
})
.pipe(
map(responseData => {
let settings : SettingsModel;
for (const key in responseData) {
if (responseData.hasOwnProperty(key)) {
if(responseData[key].id === userID) {
settings = responseData[key];
}
}
}
return settings;
}),
catchError(errorResponse => {
return throwError(errorResponse);
})
)
.subscribe(setting => {
this.retrievedSettings = setting;
return this.retrievedSettings;
});
}
调用该方法的组件
getUserSettings() {
const userID = this.authenticationService.getUserId();
this.userSettings = this.dbService.getUserSettings(userID)
.then(responseData => {
});
}
所需结果:要接收
的组件this.retrievedSettings = setting;