Я пытаюсь сделать простой вызов http.post
, а затем console.log данных.Я хочу использовать новейшие методы кодирования, поэтому я пытаюсь сделать это с помощью rxjs, поскольку он кажется мощным, эффективным и, надеюсь, перспективным.
Ранее я использовал .subscribe
, но во всех угловых документах подписка отсутствует, поэтому я полагаю, что это старый метод и что он не самый лучший.
Я пробовал множество кода, вот несколько фрагментов ниже:
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { catchError, retry, tap, map } from 'rxjs/operators';
import { of } from 'rxjs';
readonly GCF_newReq_URL = 'https://us-eastern.my-app.cloudfunctions.net/newRequest';
async submitHandler(formDirective: FormGroupDirective) {
this.loading = true;
const formValue = this.reqForm.value;
this.http.post(this.GCF_newReq_URL, formValue)
.pipe(
tap(res => console.log(res)),
retry(3),
catchError(err => {
console.log(err)
return of(err);
}),
map(res => console.log(res))
)
.subscribe(res => {
console.log(res);
});
}
Я пробовал map
, tap
, событие .subscribe
и не могувытащить что-нибудь, это просто говорит: message: "Http failure during parsing for https://us-eastern.my-app.cloudfunctions.net/newRequest"
Это должно быть так просто, я, должно быть, слишком усложняю это, но я не могу найти приличную документацию.
РЕДАКТИРОВАТЬ, добавив код облачной функции
import * as functions from 'firebase-functions';
const cors = require('cors')({ origin: true });
import * as admin from 'firebase-admin';
admin.initializeApp();
export const newRequest = functions.https.onRequest((request, response) => {
return cors(request, response, () => {
const data = request;
if (!data) {
response.status(400).send('ERROR you must supply data');
}
response.status(200).send("Hello from Firebase!");
});
});