나는 concatMap을 사용하여 HTTP 호출을 순차적으로 만들기 위해 함수를 작성하고 있습니다. 사람을 추가하고, 정보를 사용하여 연락처를 추가 한 후 일부 계정을 추가하십시오.순차적 HTTP 호출의 각도 rxjs 집합
이 함수는 목록 (내 포트폴리오의 경우)을 받고 각 포트폴리오에 대해 addAccount 및 addInvestorAccount에 대한 호출을 만들어야합니다.
그래서 예를 들어 두 개의 포트폴리오내가 HTTP 호출이 동적 세트를 만드는 방법을 확실 해요과에 첨부 (addInvestorAccount이 addAccount의 결과에 따라 달라집니다)이 엔드 포인트에 대한 호출의 두 세트를 필요로 현재 스트림. 나는 forkJoin을 살펴 봤지만 이것은 독립적 인 병렬 호출에 대한 것으로 보인다.
AddPerson(person: Person, portfolios: Portfolio[]) {
const addPerson = new AddPersonRequest();
// additional request props
return this.hostSvc.put(addPersonRequest)
.concatMap((response: Person) => {
const emailContactRequest = new CreateContactRequest();
emailContactRequest.PersonId = response.Id;
// additional request props
return this.hostSvc.put(emailContactRequest)
})
.concatMap((response: AccountName) => {
const addAccountRequest = new AddAccountRequest();
addAccountRequest.Data = new Account();
addAccountRequest.Data.AccountId = response.Id
addAccountRequest.Data.PortfolioId = portfolios[0].Id
// additional request props
return this.hostSvc.put(addAccountRequest);
})
.concatMap((response: Account) => {
const addInvestorAccountRequest = new AddInvestorAccountRequest();
addInvestorAccountRequest.Data = new InvestorAccount();
addInvestorAccountRequest.Data.AccountType = response.AccountType
// additional request props
return this.hostSvc.put(addInvestorAccountRequest);
}, (error) => console.log(error))
}
[0], 분명히 내가
addAccountRequest 및 addInvestorAccountRequest에 대한 포트폴리오를 반복 할 필요가 내가 포트폴리오를 사용하고 위에서 볼 수 있듯이 :희망이 어떤 의미를 만들고, 여기에 몇 가지 데모 코드입니다
감사!
안녕하세요 저는 이것이 구현 될 것 같은데요. 누락 된 조각은 각 포트폴리오의 모든 컨텍스트를 유지하는 함수로 분해되었습니다. 많은 감사를드립니다. –
는 매력처럼 작동했습니다 - 대단한 :) –