Javascript-使用SoundCloudAPI的异步操作

Javascript-使用SoundCloudAPI的异步操作,javascript,callback,closures,soundcloud,Javascript,Callback,Closures,Soundcloud,代码如下: var holder; var findSong; var embedHolder; $(".hypemList ol").on('click','li',function (){ holder = $(this).text(); findSong = SC.get('/tracks', { q: holder }); embedHolder = findSong._result[0].uri; SC.oEmbed(embedHolder // song

代码如下:

var holder;
var findSong;
var embedHolder;


$(".hypemList ol").on('click','li',function (){

   holder = $(this).text();
   findSong = SC.get('/tracks', { q: holder });
   embedHolder = findSong._result[0].uri;
   SC.oEmbed(embedHolder // song to embed
      , { color: "ff0066"
      , auto_play: false
      , maxwidth: 500
      , maxheight: 1000
      , show_comments: true  // options
    , element: document.getElementById("soundTest") // what element to attach player to
  });

});
我希望发生的事情:

我有一个我想播放的歌曲列表。当我点击歌曲时,我会抓取该字符串,然后使用该字符串搜索
SoundCloudAPI
。我将把结果的索引0放在
SC.oEmbed
中播放歌曲

当我打开开发控制台时,当我点击一首歌曲时,我会出现这个错误--

未捕获的TypeError:无法读取未定义的属性“\u result”

我相信我需要等待
findSong
完成,然后我可以使用
embedHolder
并将其放入
SC.oEmbed

我所做的:

我找到了这个:。我试着跟随他们的做法,但似乎不起作用

如果有人能告诉我下一步该做什么,我将不胜感激。

SC.get()有3个参数:路径、选项和回调。回调是一个函数,一旦
SC.get
完成,就会调用该函数。本例中的回调将结果数组作为参数。在代码中使用回调将如下所示:

 SC.get('/tracks', { q: holder }, function(tracks){ 
        embedHolder = tracks[0].uri;
        SC.oEmbed(embedHolder // song to embed
          , { color: "ff0066"
          , auto_play: false
          , maxwidth: 500
          , maxheight: 1000
          , show_comments: true  // options
        , element: document.getElementById("soundTest") // what element to attach     player to
      });

});
希望有帮助

SC.get()有3个参数:路径、选项和回调。回调是一个函数,一旦
SC.get
完成,就会调用该函数。本例中的回调将结果数组作为参数。在代码中使用回调将如下所示:

 SC.get('/tracks', { q: holder }, function(tracks){ 
        embedHolder = tracks[0].uri;
        SC.oEmbed(embedHolder // song to embed
          , { color: "ff0066"
          , auto_play: false
          , maxwidth: 500
          , maxheight: 1000
          , show_comments: true  // options
        , element: document.getElementById("soundTest") // what element to attach     player to
      });

});
希望有帮助