2014-12-23 2 views
0

나는 DJ를위한 웹 사이트에서 일하고 있는데, 플레이어를 만들어야합니다. 그것을 얻으려면, 나는 사용자로부터 모든 트랙을 얻고 싶습니다. 그리고 나서이 플레이어로 스트리밍 플레이어를 만드십시오.사용자 이름으로 Soundcloud 트랙 목록을 반환하십시오.

나는 많은 코드를 시도하고 마지막 시도가 가장 가까운 시도이지만, 좋은 트랙은 반환하지 않습니다. 트랙의 출처를 모르지만 원하는 사용자가 아닌 것입니다.

SC.initialize({ 
    client_id: "17f834e2f3c8ef63fa411ef6942caf0f" 
}); 

SC.get('/resolve', { 
    url: 'https://soundcloud.com/stormthedj' 
}, function(user) { 
    theUserID = user.id; 
}); 

SC.get("/tracks", { 
    user_id: theUserID, 
    limit: 100 
}, function (tracks) { 

for (var i = 0; i < tracks.length; i++) { 
    console.log(tracks[i].title); 
} 

이 나를 도와 미리 감사합니다 :

여기 내 코드입니다.

답변

0

SoundCloud의 JavaScript API에 익숙하지 않지만 비동기라고 가정합니다. 이 경우 tracks 호출을 resolve 호출에 전달 된 콜백으로 이동하십시오. 위에서 더 다루기 것과 같은 같은 Q 또는 Bluebird 콜백 체인을 유지할 수 있습니다 라이브러리를 약속

SC.get('/resolve', { 
    url: 'https://soundcloud.com/stormthedj' 
}, function(user) { 
    var theUserID = user.id; 

    SC.get("/tracks", { 
     user_id: theUserID, 
     limit: 100 
    }, function (tracks) { 

     for (var i = 0; i < tracks.length; i++) { 
      console.log(tracks[i].title); 
     } 
    } 
}); 

참고.

+0

예이 코드는 완벽하게 작동합니다. 고맙습니다! 하지만 그걸 고쳐야 만 했어. ")" –

+0

문제가 하나뿐입니다. 이 값을 변수에 넣을 수 없습니다. 내가 console.log에서 출력 할 때, 나는 그것들을 올바르게 봅니다. 그러나 그것들을 배열에 넣고 SC 함수에서 출력하면, 그냥 빈 배열을 얻습니다. 뭐가 잘못 되었 니? for 루프에서이 코드를 사용합니다. tracksList.push (tracks [i] .title); –

+0

정확히 어떻게 할 것인가에 따라 다릅니다 (힌트 : _complete_ 코드 예를 제공하십시오). 그것이 이전과 같은 문제라고 추측합니다. 이러한 메소드는 ** 비동기 **이므로 콜백의 값에 의존하는 ** 아무 것도 ** 콜백 내에서 또는 콜백이 실행 된 후에 발생해야합니다. –

관련 문제