Я выполняю несколько вызовов API. Один создает пользователя, а второй создает команду.
Создание пользователя возвращает UserId
, который затем используется как часть создания команды.
Я использую библиотеку rxjs с Angular, использую методы .map и .subscribe, чтобы дождаться разрешения первого вызова, а затем передать UserId во второй вызов API.
Первый звонок разрешает и возвращает UserId
, который мне нужен, но второй даже не отправляет.
this.http.post<number>(this.baseUrl + 'api/register/', UserTeam, {
headers: new HttpHeaders({
"Content-Type": "application/json"
})
})
.map(response => response)
.subscribe(result =>
//result = the new user id from registering new user
{
var newTeam = JSON.parse(UserTeam);
newTeam.userId = result;
newTeam = JSON.stringify(newTeam);
this.http.post(this.baseUrl + 'api/team/', newTeam, {
headers: new HttpHeaders({
"Content-Type": "application/json"
})
}).map(result => result)
})
Я отладил, и когда URL-адрес создан, он должен попасть в мою конечную точку, и тело, которое я отправляю с ним, успешно выполняется по URL-адресу при тестировании на почтальоне, я не уверен, почему вызов не выполняется ' отправка.
Мне кажется, что он должен сделать второй вызов API.
Я пытался использовать .pipe
, а затем .map
, но это тоже не работает.
При отладке кода он перемещается по обоим вызовам, а второй .map(result => result)
содержит тот же идентификатор, возвращаемый из response => response
.
Это заставляет меня думать, что я могу сделать только один вызов API перед отпиской, может кто-нибудь прояснить это.