複数の HTTP リクエストを含めることができる Angular2 ForkJoin があります。ForkJoin でエラーが発生した場合、エラーの原因となった ForkJoin 内のリクエストの URL のサブ ドメイン/ドメインを特定できるようにしたいと考えています。エラーが 401 Unauthorized の場合は、新しい接続を再確立する必要があります。失敗したリクエストのサブドメイン/ドメインが必要なので、トークンを再確立して ForkJoin リクエストを再試行するために資格情報を検索できます。私の ForkJoin は、異なるドメインに対して複数のリクエストを行っている可能性があります。
return Observable.create(observer =>
{
//JOIN ALL REQUESTS TOGETHER INTO A BATCH TO BE FORKED....
let observableBatch = [];
//ADD OBSERVABLE FOR SINGLE GET REQUEST
if (requestModel.Get)
{
observableBatch.push(this.HttpGet(requestModel.Get));
}
//ADD OBSERVABLE FOR AN ARRAY OF GET REQUESTS
if (requestModel.GetList)
{
for (let item in requestModel.GetList)
{
observableBatch.push(this.HttpGet(requestModel.GetList[ item ]));
}
}
//ADD OBSERVABLE FOR SINGLE POST REQUEST
if (requestModel.Post)
{
observableBatch.push(this.HttpPost(requestModel.Post));
}
//ADD OBSERVABLE FOR AN ARRAY OF POST REQUESTS
if (requestModel.PostList)
{
for (let item in requestModel.PostList)
{
observableBatch.push(this.HttpPost(requestModel.PostList[ item ]));
}
}
/*
FORK JOIN RETURNS AN ARRAY OF RESULT SETS (1 FOR EACH REQUEST IN FORK JOIN)
THIS OBSERVABLE, IF SUCCESSFUL, RETURNS THE FOLLOWING:
[1..N] - THE RAW JSON FROM CMS SERVICE
*/
let forkJoinSubscription = Observable.forkJoin(observableBatch)
.subscribe (
//SUCCESS, WE HAVE JSON RESPONSE(S)
data =>
{
console.log('FORK JOIN SUCCESS !!!', data);
},
//ERROR
err =>
{
console.log('FORK JOIN ERROR...', err);
},
//COMPLETE
() =>
{
if (forkJoinSubscription)
{
forkJoinSubscription.unsubscribe();
}
//console.log('FORK JOIN COMPELETED');
}
);
});
エラーが発生したときに、ForkJoin の URL のバッチで URL のサブドメイン/ドメインを特定することは可能ですか?