Spotify 앱을 만들고 있는데 기능 앨범을 갖고 싶습니다. 내 JSON 데이터는 앨범을 지정하므로 간단한 for
루프로 반복합니다. 그러나 track.data.album.name
를 통해 제공됩니다 트랙 데이터는 달리, 앨범 데이터는 콜백을 통해 추출 할 필요가있다 :Spotify 앱에서 콜백으로 앨범 데이터 가져 오기
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 App 문제이거나 콜백 내부에서 클로저 또는 익명 함수를 사용해야하는 경우 다소 혼란 스럽습니다. 당신의 객체에 URI를 제공 - 이미 알려져 있기 때문에
이uri
속성은 즉시 사용할 수
var a = models.Album.fromURI("spotify:album:1KtFTJnuQbMDpKJRHQonYZ", function(album) {
console.log(a === album);
// ^Logs "true"
});
가 :
설명해 주셔서 감사합니다. 내 문제는 루프 내부에서 콜백을 올바르게 수행하는 방법을 이해하지 못한다고 생각합니다. 클로저가 필요하다고 생각합니다. 하지만 당신의 대답은 모든 것을 완벽하게 정리했습니다. – Komejo
네, 그런 일이 일어났습니다.'모델 .Album.fromURI()'는 클로저에 의해 호출되어야했습니다. 두 번째 코드 예제의 수정 된 버전은 다음과 같이 훌륭하게 작동합니다. https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Closures – Komejo