Может быть, вы найдете ответ в виде ссылки ниже, но он не отвечает на мой вопрос достаточно
https://stackoverflow.com/questions/38875375/how-to-make-synchronous-http-calls-in-angular-2
Что я хочу:
В ajax мы можем вызвать сервиспометив его как «async: false», следовательно, он будет синхронным, я хочу выполнить мой вызов веб-службы таким образом.согласно моему коду ниже, он работает как асинхронный, как сделать синхронный вызов, как после получения только полных значений, я хочу выполнить другие инструкции.
Как сделать синхронный вызов в angular 2, в моем случае у меня есть функция, которая вызывает java-сервис, и сервис возвращает некоторый объект JSON (список значений), используя этот список объектов, я делаю некоторыеманипуляции и составление таблицы.Здесь все работает нормально, но когда мой первый триггер когда-либо вызывает веб-сервис для рисования таблицы, он не рисует таблицу, потому что объект не возвращается с надлежащим JSON, но когда я запускаю действие во второй раз, он правильно отображаетЗначения в табл.Я считаю, что ответ веб-службы делает некоторую задержку, так как вызов асинхронный, это вызывает эту проблему.Следовательно, как мы можем сделать вызов таким образом, чтобы таблица отображалась правильно в соответствии с ответом JSON.
Мой код выглядит следующим образом:
Сценарий типа компонента:
constructor(private service: VolumeHttpService) {}
temp: SomePojo[];
public someFunciton(): void {
this.service.getTableVal()
.subscribe(temp=> this.temp= temp);
//do some manipulations with temp data
}
Сервисный текст:
getTableVal(): Observable<SomePojo[]> {
return this.http.get<SomePojo[]>(serviceUrlAddress)
.pipe(
tap(rowData => '')
);
}