Я надеюсь, что кто-то может дать небольшой совет о том, как сделать следующее:
У меня есть требование связать несколько http-запросов, каждый из которых зависит от результата предыдущего.
i.e
Шаг 1: Войдите в систему
Шаг 2: HTTP-запрос с проверкой подлинности
Шаг 3: Аутентифицированный HTTP-запрос со значением ответа из шага 2.
Шаг 4: Аутентифицированный HTTP-запрос со значением ответа из шага 3
Пока у меня есть следующий код (который работает):
this.authSandbox.login(this.loginForm).subscribe(() => {
this.customerEnquirySandbox.createCustomer(newCustomer)
.filter(response => !!response) // continue when response not null
.subscribe((response) => {
let response1Details = {
"id": response.data.id,
};
this.customerEnquirySandbox.createMeasure(response1Details )
.filter(response => !!response)
.subscribe((response) => {
let response2Details = {
"id": response.data.id,
};
this.customerEnquirySandbox.saveAnswers(response2Details )
.filter(response => !!response)
.subscribe((response) => {
if (response.data.success) {
alert('Form completed and answers saved successfully');
} else {
alert('Error submitting answers');
}
this.authSandbox.customerEnquirylogout();
});
});
});
});
Вышеприведенное работает, но не кажется наиболее подходящим способом. У меня есть предложения с использованием switchMap, но я не уверен, что это правильный подход. Если кто-нибудь может предложить какие-либо рекомендации о том, как сделать вышеизложенное более правильно, то это будет высоко оценено.
заранее спасибо