Я делаю http-вызов, чтобы получить массив с objs.И теперь я хочу вызвать для каждого объекта, которые возвращают мне ID еще один http-вызов.В конце концов я хочу получить один наблюдаемый результат.
До сих пор мне удавалось получить для каждого индекса http-вызов.Проблема вместо одного результата, который я получил несколько раз.
getStats(tag: string) {
return this.service.getClanByClanTag(tag)
.map(clan => {
return clan.memberList; //the arr that return the ID's
})
.switchMap((member: PlayerByMemberListType[]) => {
return member; // singleObj of the arr
})
.concatMap((singleMember) => {
return this.service.getPlayerData(singleMember.tag).map(player => {
//push data to the new arr which should return only one time
this.newArr.push({
tag: singleMember.tag,
name: singleMember.name,
warStars: player.warStars,
trophiesNightBase: singleMember.versusTrophies
});
return this.newArr;
});
});
}
Вот что печатает консоль после подписки на нее:
Array [ {…} ]
Array [ {…}, {…} ]
Array(3) [ {…}, {…}, {…} ]
Array(4) [ {…}, {…}, {…}, {…} ]
Array(5) [ {…}, {…}, {…}, {…}, {…} ]
...
Я знаю, мне нужен какой-то Observable.forkJoin
но я не знаю, как интегрировать это в код.