У меня есть служба, которая запрашивает данные у метода get, я хотел бы отобразить ответ на объект, хранящий некоторые идентификаторы, и использовать эти идентификаторы для выполнения других http-запросов.
Мне сказали, что это обычно не делается в режиме обратного вызова, я посмотрел на это Как я могу вернуть ответ от асинхронного вызова? , но я не думаю, что это обычный способ реализации служб, любой советы очень ценятся.
Попытка добавления метода onInit / constructor в angular, чтобы убедиться, что объект был заполнен до того, как другие методы были вызваны без успеха.
@Injectable ()
export class ContactService {
storeIds;
getIds(callback: Function) {
this.http.get<any>(IdsUrl, Config.options).subscribe(res => {
callback(response);
});
getIds(res => {
this.storeIds = {
profileId: res.profile,
refIds: res.refIds
}
}
)
// this.storeIds returns undefined as it's an async call
this.http.post<any>(WebserviceUrl + this.storeIds.profileId , data, headers )
// .....Many other web services that relay on this Ids
}