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
});
});
希望有帮助