1

我正在使用 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

}

4

2 回答 2

1

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

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

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

于 2012-12-12T10:14:54.983 回答
1

简短的回答是,你不会回来。

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

于 2012-12-12T10:15:53.057 回答