0

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アプリの問題なのか、コールバック内でクロージャや無名関数を使用する必要があるのか​​、少し混乱しています。

4

1 に答える 1

0

返されるmodels.Album.fromURI()のは、コールバックで渡されたものと同じオブジェクトです。

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

uriプロパティはすでにわかっているのですぐに利用できます—最初にオブジェクトにURIを指定します。残りのメタデータは非同期で読み込まれa、コールバックが発生すると元のオブジェクトで使用できるようになります。コールバックでは、URIまたは次に実行する必要があるものを実際に更新する別の関数を呼び出したい場合があります。

于 2012-08-08T17:10:49.103 に答える