从 Spotify 应用程序中的回调获取专辑数据

Getting album data from callback in Spotify App

本文关键字:获取 专辑 数据 回调 Spotify 应用程序      更新时间:2023-09-26

我正在构建一个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 应用程序问题,或者我是否应该在回调中使用闭包或匿名函数,我有点困惑。

你从models.Album.fromURI()得到的东西是在回调中传递给你的同一个对象:

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

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