从Spotify App中的回调获取专辑数据

时间:2012-08-08 14:45:50

标签: javascript spotify

我正在构建一个Spotify应用程序,并且想要推出专辑。我的JSON数据指定了专辑,因此我使用简单的for循环遍历它们。但是,与通过track.data.album.name直接提供的曲目数据不同,专辑数据需要通过回调提取:

var a = models.Album.fromURI(appData.Albums[i].uri, function(album) {
        console.log("Album data: ", album.name);
});

这可以正常工作,控制台显示相册名称,但我找不到任何有关如何在回调函数之外使数据可用的示例。 a.uri似乎是唯一有效的方法:

var a = models.Album.fromURI(appData.Albums[i].uri, function(album) {
    //console.log("Album data: ", album.name);
});
console.log("Album data: ", a.uri);

有人能指出我正确的方向吗?如果这是一个Spotify应用程序问题,或者我应该在回调中使用闭包或匿名函数,我有点困惑。

1 个答案:

答案 0 :(得分:0)

models.Album.fromURI()返回的内容与回调中传递给您的对象相同:

var a = models.Album.fromURI("spotify:album:1KtFTJnuQbMDpKJRHQonYZ", function(album) {
    console.log(a === album);
    // ^Logs "true"
});

uri属性可以立即使用,因为它已经知道 - 您可以将URI提供给对象。其余的元数据是异步加载的,一旦触发回调,它将在原始a对象中可用。在回调中,您可能希望调用另一个实际更新URI的函数或下一步需要执行的操作。