0

プレイリストから選択した曲までのすべての曲を削除したい。このコードは Spotify をクラッシュさせているので、苦情の内容はわかりませんが、トラックを削除するための最初の呼び出しが発生するとすぐに発生すると思います。remove 呼び出しをコメントアウトすると、ログは正しく表示されます。

    var playlist = models.Playlist.fromURI(uri);
    playlist.load('tracks').done(function (tracks) {
        console.log('tracks loaded');
        playlist.tracks.snapshot(0, 20).done(function (snapshot) {
            console.log('snapshot loaded');
            if(snapshot.find(models.player.track)) {
                var done=false;
                var tracks = snapshot.toArray();
                tracks.forEach(function(deleteme) {
                    if (deleteme == models.player.track) {
                        console.log('here\'s our current track');
                        done = true;
                    } else if (done) {
                        console.log('already done');
                    } else {
                        console.log('deleting ' + deleteme.uri);
                        playlist.tracks.remove(deleteme);
                    }
                })
            }
        });
    });

更新 何が起こったのかわかりませんが、クラッシュしなくなりました。コマンドラインから spotify -console を実行しているからかもしれません。

代わりにこのメッセージが表示されます。

20:39:36.663 A [base/range.h:27                 ] Check failed: loc >= 0:

Promise.fail のエラー メッセージには、Item at index -1 changed と表示されます。

4

1 に答える 1

0

どうやら の要素はsnapshot.toArray()と同じではありませんsnapshot.ref(index)

更新:これを理解するための参照ドキュメント - https://developer.spotify.com/docs/apps/api/1.0/api-models-reference.html

于 2013-10-16T20:53:59.850 に答える