私はconcatMapを使って関数を書いて、HTTP呼び出しを連続して行います。人を追加し、返された情報を使用して連絡先を追加し、いくつかのアカウントを追加します。順次http呼び出しの角度rxjsセット
この関数はリスト(私の場合はポートフォリオ)を受け取り、各ポートフォリオに対してaddAccountとaddInvestorAccountの呼び出しを作成する必要があります。
2つのポートフォリオは、これらのエンドポイントへのコールの二組を必要とする例えばので(addInvestorAccountはのaddAccountの結果に依存している)
私はHTTP呼び出しのこれらの動的セットを作成し、それらを接続する方法がわかりませんよ現在のストリーム。私は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のためのポートフォリオを反復処理する必要があり、私はポートフォリオを使用している上で見ることができるように:ホープこれは、いくつかの理にかなって、ここにいくつかのデモコードです
ありがとう!
こんにちは私は(実装しなくても)これはうまくいくように思えます。欠けている部分は、各ポートフォリオのすべてのコンテキストを保持する関数に分割されています。 –
は魅力的に働いた - 素晴らしい:) –