У меня есть программа, в которой у меня есть цикл for внутри цикла for. В результате в последнем файле array.push я получаю то, что Albumtitle всегда является последним результатом первого цикла for. Когда я зацикливаюсь на консоли chrome, я вижу, что первый цикл for доставляет, например, 3 результата, прежде чем я вижу, как он входит во второй цикл for. Я неправильно использую циклы for или в коде есть проблема?
selected_artist(id){
this.musicservice.get_artist_albums(id).subscribe(payload => {
this.tracks_to_play=[];
this.albums=[]=payload.MediaContainer.Metadata;
this.test=[];
for (this.i_albums=0; this.i_albums<this.albums.length; ++this.i_albums) {
this.albumtitle=this.albums[this.i_albums].title;
this.musicservice.get_artist_albums(this.albums[this.i_albums].key).subscribe(tracks_data => {
this.tracks=tracks_data.MediaContainer.Metadata;
this.art=tracks_data.MediaContainer.thumb;
for (this.i_tracks=0; this.i_tracks<this.tracks.length; ++this.i_tracks) {
this.tracks_to_play.push({Key: this.tracks[this.i_tracks].Media[0].Part[0].file, Title: this.tracks[this.i_tracks].title, Duration: this.tracks[this.i_tracks].Media[0].Part[0].duration});
}
this.test.push({AlbumTitle : this.albumtitle, Tracks: this.tracks_to_play })
this.tracks_to_play=[];
console.log(this.test);
this.album_selected=true;
this.album_selected=true;
});
}
});
}