0

使用 API v1。

不知道我必须多久做一次这样的事情,但我怀疑有一点。

我想检查用户是否是删除的播放列表的所有者。如果没有下面的嵌套负载链,是否可以做到这一点?我看到Promises 可以加入,但我不认为我可以在没有加载的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);
            }
        });
    });
4

1 回答 1

1

你是对的,你的方法是最好的检查方法。您需要进行 2 个异步调用并像这样链接它们。

另一种方法是首先通过 获取当前用户的标识符,该标识符models.session.user.load('username').done(function(u) { ... });返回用户名,然后将其与播放列表所有者的 uri 进行比较(用户名前缀为spotify:user:。但是,如您所见,这种替代方法不会t 使您免于进行 2 个嵌套调用。

于 2014-01-15T09:24:23.850 回答