当前用户顶部列表的跟踪快照出现间歇性问题 [英] Intermittent issue with tracks snapshot for current user top list

查看:21
本文介绍了当前用户顶部列表的跟踪快照出现间歇性问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

执行此代码时出现问题:

require(['$api/models','$api/library#Library'], function(models,Library) {

// THIS ONLY HAPPEN FOR TOP LIST
var uri=Library.forCurrentUser().toplist.uri;
// IF YOU USE ANY OTHER PLAYLIST IT WORKS FINE
//  var uri="spotify:user:vdesabou:playlist:0xy2zExFmPzJZsY0X0bCC5";

var playlist = models.Playlist.fromURI(uri);
playlist.load('tracks').done(function() {
    console.log("loaded 1");
playlist.tracks.snapshot().done(function(snapshot) {
    console.log("snapshot length 1 " + snapshot.length);

    snapshot.loadAll('name')
       .done(function(snap_tracks) { console.log("loaded tracks length 1 " + snap_tracks.length);    })
       .fail(function() { console.log("loadAll failed"); });
    }).fail(function() { console.log("snapshot failed"); });

}).fail(function() { console.log("playlist load tracks failed"); });

});

如果我执行多次(通过重新加载我的应用程序),则大约每3次中就有1次无法获得结果

当它不工作时:

loaded 1

当它工作时,我得到:

loaded 1
snapshot length 1 20 
loaded tracks length 1 20 

只有顶级列表播放列表才会出现这种情况,任何其他播放列表都可以。

可能出了什么问题? 谢谢

推荐答案

库的TopList属性已经是一个播放列表,因此您不需要从其URI创建新的PlayList对象。此代码段的功能与您的相同,但会加载TopList属性并使用它直接获取曲目,而不是创建新的播放列表。

require(['$api/models','$api/library#Library'], function(models,Library) {

  var library = Library.forCurrentUser();
  library.load("toplist").done(function() {
    var toplist = library.toplist;

    toplist.load('tracks').done(function() {
      console.log("loaded 1");
      toplist.tracks.snapshot().done(function(snapshot) {
        console.log("snapshot length 1 " + snapshot.length);

        snapshot.loadAll('name')
          .done(function(snap_tracks) { console.log("loaded tracks length 1 " + snap_tracks.length);    })
          .fail(function() { console.log("loadAll failed"); });

      }).fail(function() { console.log("snapshot failed"); });

    }).fail(function() { console.log("playlist load tracks failed"); });

  }).fail(function() {
    console.log("Could not load toplist.");
  });

});

我确实尝试了您提供的代码片段,与Thomas类似,我也没有发现它有任何错误。不过,希望这能有所帮助。

这篇关于当前用户顶部列表的跟踪快照出现间歇性问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆