使用此Spotify播放列表时,我遇到问题:用户:juan20150:播放列表:5rl5QaWjWtEPv9a057w3qc
这是我见过的第一个有这个问题的播放列表。 返回的快照长度为290,但是当我执行snapshot.loadAll时,它只返回289个曲目。
知道为什么会这样吗?
var playlist = models.Playlist.fromURI("spotify:user:juan20150:playlist:5rl5QaWjWtEPv9a057w3qc");
playlist.load('tracks').done(function() {
playlist.tracks.snapshot().done(function(snapshot) {
console.log("snapshot length " , snapshot.length);
$i=0;
snapshot.loadAll('name').each(function(track) {
console.log("i=" , i++);
});
});
});
结果:
快照长度290 i = 289(最后)
由于
答案 0 :(得分:0)
因为你从零开始,并且后递增。如果播放列表长度为3,则会打印
0
1
2
为3首曲目。
自行更新尝试
首先,将实际代码放入非伪代码是有帮助的。我把你的代码扔进我的应用程序,但它没有用。一旦我修复它,它从0到288打印。因此,我删除.each
并放入.done
并且它没有打印任何内容。但是,.fail
确实返回了一些内容。不幸的是,错误未定义。以下:
require(['$api/models'], function(models) {
var playlist = models.Playlist.fromURI("spotify:user:juan20150:playlist:5rl5QaWjWtEPv9a057w3qc");
playlist.load('tracks').done(function() {
playlist.tracks.snapshot().done(function(snapshot) {
console.log("snapshot length " + snapshot.length);
var i=0;
snapshot.loadAll('name')
//.each(function(t) { console.log(i++); })
.done(function(snap_tracks) { console.log("loaded tracks length " + snap_tracks.length); })
.fail(function(track, error) { console.log(error + ". " + track.length); });
});
});
});
输出:
14:39:15.898 I [sp://67456db3aaa5a1c25a619472cdb2cbc3f52da3ed.album-radio/js/alb
umradio.js:507] snapshot length 290
14:39:16.236 I [sp://67456db3aaa5a1c25a619472cdb2cbc3f52da3ed.album-radio/js/alb
umradio.js:512] undefined. 290
我最好的猜测是,你有一首不再可访问的歌曲(许可纠纷或其他内容)。