Полагаю, это то, что вы хотите:
postARQRequest(request): Observable<ArqResponse>{
return this.http.post<ArqResponse>(this.arqUrl, request);
}
Нет необходимости подписываться на что-либо здесь. Учитывая, что this.http.post
возвращает желаемый тип, просто верните его.
Если вы действительно хотите сохранить ответ в локальной переменной, есть несколько способов сделать это:
Используйте обещание вместо этого, чтобы получить результат. Сделайте это наблюдаемым, используя of
позже:
async postARQRequest(request): Observable<ArqResponse>{
let postResponse = new ArqResponse;
postResponse = await this.http.post<ArqResponse>(this.arqUrl, request).toPromise();
return of(postResponse);
}
Используйте оператор tap
, чтобы реагировать на ответ, но не изменять его
postARQRequest(request): Observable<ArqResponse>{
return this.http.post<ArqResponse>(this.arqUrl, request).pipe(
tap((res) => ...) // do stuff with res here, but it won't be mutated
);
}
Используйте оператор map
, чтобы сопоставить ответ с чем-то другим
postARQRequest(request): Observable<ArqResponse>{
return this.http.post<ArqResponse>(this.arqUrl, request).pipe(
map((res) => ...) // do stuff with res here, but it *will map to whatever you return from this handler*
);
}