使用API v1。
不确定我有多长时间不得不做这样的事情,但我怀疑还有一点。
我想检查用户是否是已删除的播放列表的所有者。如果没有下面的嵌套加载链接,是否可以这样做?我看到Promises can be joined,但我认为如果没有加载currentUser
我就无法加载owner
。有什么方法可以简化这个吗?
var drop = models.Playlist.fromURI(...);
var success_message = document.createElement('p');
success_message.innerHTML = 'Playlist successfully dropped: ' + drop.uri;
this.appendChild(success_message);
drop.load('owner').done(function (playlist) {
playlist.owner.load('currentUser').done(function (owner) {
if (owner.currentUser) {
var allowed_message = document.createElement('p');
allowed_message.innerHTML = 'You are the owner of this playlist, let\'s get to work!';
drop_box.appendChild(allowed_message);
}
else {
var disallowed_message = document.createElement('p');
disallowed_message.innerHTML = 'You are not the owner of this playlist, choose a different one please!';
drop_box.appendChild(disallowed_message);
}
});
});
答案 0 :(得分:1)
你是对的,你的是最好的检查方法。你需要进行2次异步调用并将它们链接起来。
另一种方法是首先通过models.session.user.load('username').done(function(u) { ... });
获取当前用户的标识符,该标识符返回用户名,然后将其与播放列表所有者的uri进行比较(用户名前缀为spotify:user:
但是,正如您所看到的,这种替代方案不会使您无法进行2次嵌套调用。