这是我要完成的工作的基本流程:
在深入探讨问题之前,下面是基础代码。
这是当前可观察的trackCollections的样子:
trackCollections = sessionService.getRecentlyPlayedTracks(limit: 10)
.flatMapLatest { [unowned self] tracks -> Observable<[RecentlyPlayedTrack]> in
var updatedTracks = [RecentlyPlayedTrack]()
for track in tracks {
self.getArtistImages(artistURLs: track.artistURLs)
.bind(onNext: { imageURLs in
let updatedTrack = RecentlyPlayedTrack(trackName: track.trackName, albumName: track.albumName, artistURLs: imageURLs, duration: track.duration, playedFrom: track.playedFrom, playedAt: track.playedFrom, externalURL: track.externalURL)
Logger.info("Creating new updated track: \(updatedTrack)")
updatedTracks.append(updatedTrack)
})
.disposed(by: self.disposeBag)
}
return Observable.just(updatedTracks)
}
返回艺术家图像的帮助方法:
private func getArtistImages(artistURLs: [URL]) -> Observable<[URL]> {
var urls = [URL]()
Logger.info("\(urls.count) - \(artistURLs.count)")
for url in artistURLs {
self.sessionService.getArtist(href: url)
.map { $0.image }
.bind(onNext: {
Logger.info("Artist Image: \($0.absoluteString)")
urls.append($0)
})
.disposed(by: self.disposeBag)
}
return Observable.just(urls)
}
这是运行时的输出:
2019-12-11 13:17:58 | INFO | Creating new updated track: RecentlyPlayedTrack(trackName:
"Becalm", albumName: "Solo", artistURLs: [], duration: "2:29", playedFrom: "Playlist",
playedAt: "Playlist", externalURL: https://open.spotify.com/track/4N9UKWy0TLiwNEuzeynWiU)
2019-12-11 13:17:58 | INFO | Creating new updated track: RecentlyPlayedTrack(trackName:
"The Piano Inside", albumName: "The Piano Inside", artistURLs: [], duration: "3:11",
playedFrom: "Playlist", playedAt: "Playlist", externalURL:
https://open.spotify.com/track/0BtymruMtXTo6vdk4LH4aB)
2019-12-11 13:17:58 | INFO | Creating new updated track: RecentlyPlayedTrack(trackName: "Aoyama
Bochi", albumName: "Aoyama Bochi", artistURLs: [], duration: "2:03", playedFrom: "Playlist",
playedAt: "Playlist", externalURL: https://open.spotify.com/track/6aLLf5UU8GivpvjLxdOog1)
2019-12-11 13:17:58 | INFO | Artist Image:
https://i.scdn.co/image/2d4572b6761c8340118405ae5fb07a3c341162e8
2019-12-11 13:17:58 | INFO | Artist Image:
https://i.scdn.co/image/ab67616d0000b2732b3835d0c00e8232df3b035d
2019-12-11 13:17:58 | INFO | Artist Image:
https://i.scdn.co/image/ab67616d0000b273f84ddc43f770853051c2b698
问题:
为什么我认为这种情况正在发生:
您应该了解的事情: