Метод Shuffle коллекции Spotify не работает должным образом
Для моего приложения мне нужно перетасовать коллекцию, прежде чем превратить ее в снимок для последующего использования. Согласно документации, метод shuffle() возвращает новую коллекцию с рандомизированными дорожками, поэтому я должен иметь возможность немедленно вызвать метод snapshot() (поскольку он не возвращает Promise, как это делает snapshot()).
Вот мой тестовый код, который работает, как и ожидалось, без метода shuffle. Тем не менее, он ничего не показывает в консоли с добавлением.
playlist.load('tracks').done(function(tracks) {
// Works when shuffle() is removed
playlist.tracks.shuffle().snapshot()
.done(
function( snapshot ) {
console.log( snapshot );
for (var i = 0; i < snapshot.length; i++) {
var track = snapshot.get(i);
console.log(track.name);
}
}
);
});
Есть идеи?
1 ответ
Решение
Похоже, какая-то амбициозная документация - shuffle, похоже, не реализован. Когда я запустил это:
require(['$api/models'], function (models) {
playlist = models.Playlist.fromURI(localStorage.album_radio_playlist);
playlist.load('tracks').done(function (tracks) {
console.log(tracks);
// Works when shuffle() is removed
playlist.tracks.shuffle().snapshot()
.done(
function (snapshot) {
console.log(snapshot);
for (var i = 0; i < snapshot.length; i++) {
var track = snapshot.get(i);
console.log(track.name);
}
}
).fail(function (blah, err) { console.log("failed to shuffle " + err); });
});
});
Я получил этот вывод
14:46:05.156 A [shell/lists/ItemListFactory.h:239] Check failed: Not implemented!
14:46:05.167 I [sp://67456db3aaa5a1c25a619472cdb2cbc3f52da3ed.album-radio/js/albumradio.js:684] failed to shuffle undefined