在进行API调用时从函数返回(javascript)

时间:2012-12-12 10:08:42

标签: javascript api soundcloud

我正在使用soundcloud API。我有一个我打电话的功能
SC.get('/tracks', { tags: geotags }, SearchTracks);

将响应对象和错误代码返回给名为SearchTracks的函数。在调用SearchTracks之后,如何返回到我所在的main函数,以及如何将响应对象返回给它?

API调用在plot_soundcloud中:

function plot_soundcloud(coor)
{ var geotags= "geo:lon="+SCQueryPoints.join(" geo:lon=");
SC.get('/tracks', { tags: geotags }, SearchTracks);
alert ("return here and do some more stuff"); //this line does not execute
}

它调用此函数,但如何返回plot_soundcloud?

var SearchTracks=function Search(tracks)<br>{
 // assign longitude and latitude<br>
 for (var key in tracks)
     {var lon=tracks[key].tag_list.match(/geo:lon=(.*?\.\d+)\s*/);
     tracks[key].lon=lon[1];      
     var lat=tracks[key].tag_list.match(/geo:lat=(.*?\.\d+)\s*/);
     tracks[key].lat=lat[1];
     }
 return tracks; //I want to be able to use tracks[key].lon in plot_soundcloud

var SearchTracks=function Search(tracks)<br>{ // assign longitude and latitude<br> for (var key in tracks) {var lon=tracks[key].tag_list.match(/geo:lon=(.*?\.\d+)\s*/); tracks[key].lon=lon[1]; var lat=tracks[key].tag_list.match(/geo:lat=(.*?\.\d+)\s*/); tracks[key].lat=lat[1]; } return tracks; //I want to be able to use tracks[key].lon in plot_soundcloud

2 个答案:

答案 0 :(得分:1)

你没有。主要功能已经结束。如果你需要对结果做些什么(或者只是在GET完成后需要做),你必须在SearchTracks中进行。

如果SearchTracks需要访问plot_soundcloud的局部变量,只需在plot_soundcloud中声明SearchTracks。

(还有一点提示:选择功能的命名标准并坚持下去。所以SearchTracks和PlotSoundCloud,或者(最好)search_tracks和plot_soundcloud。

答案 1 :(得分:1)

简短的回答是,你没有回来。

实现更多的东西作为SearchTracks的一部分实现一个函数来做更多的东西,并调用该函数而不是SearchTracks