Я не уверен, почему вы пропускаете опцию observe
.Я предполагаю, что вы хотите прочитать некоторые заголовки или некоторые другие метаданные в ответе.Помня об этом, поскольку вы сделали { observe: 'response' }
, вы получите полный объект Response с множеством полей.Но все, что вас беспокоит, это поле body
.
Так что вы можете прочитать его так:
let isExist: boolean;
this.http.get(`${this.baseUrl}/Trips/TripExist`, {
headers: new HttpHeaders({
'Accept': 'text/plain',
'Content-Type': 'text/plain'
}),
params: {
id: id,
name: name
},
observe: 'response'
}).subscribe(
data => {
isExist = data.body; // HERE data.body will have the boolean that you're looking for.
console.log(data);
console.log(isExist);
if (isExist === true) { console.... }
},
err => console.error(err)
);
ОБНОВЛЕНИЕ:
Это не будет работатьесли условие if
находится вне блока subscribe
.Код внутри блока подписки выполняется асинхронно, то есть после завершения вызова API и получения ответа.Но условие if
будет выполняться синхронно, т. Е. Перед блоком subscribe
.Поэтому, когда элемент управления достигает вашего условия if
, переменная isExist
все равно будет undefined
, поскольку она не была инициализирована и инициализируется только внутри блока subscribe
, который выполняется ПОСЛЕ the if
условие выполнено.
Я обновил свой ответ с помощью условия if
, перемещенного внутри блока subscribe
.