Вам понадобится обещание для await
. get
из HttpClient
возвращает Observable, в то время как await
ожидает promise
.
. Вы можете использовать функцию toPromise()
для преобразования Observable в Promise.
Вы также можете использовать Pipes
, например tap
, catchError
и finalize
, чтобы не подписываться на Observable внутри службы.
return this.http.get ('http://localhost:80/api/Target.xml',{ responseType: 'text' })
.pipe(
tap(val => console.log("GET call successful value returned in body", val)),
catchError(error => console.log("GET call in error", error)),
finalize(() => console.log("The GET observable is now completed."))
)
);
Для прокомментированной части, даже если вы используете toPromise()
, она все равно не будет работать, как если бы вы поставили запись сразу после вызова.
Асинхронные функции возвращают обещание, которое вы должны подождать, а затем записать значение. Вы либо используете then
как ReadConfiguration().then(() => console.log("Completed"))
, либо используете async/await
.