如何在回调函数中更新和传递变量
How to update and pass a variable in a call back function
我使用的是SoundCloud API,我做了一个带有回调的函数,首先它会获得歌曲URL,然后通过SoundCloud API获得与该URL相关的声音ID,然后将该ID传递给回调,以用于流式传输和更新页面。它确实从API收集数据,但变量会在本地更新,并在公共场合保持未定义。
以下是代码和演示:http://jsfiddle.net/aq309twd/
function transfer(item, callback) {
permalink_url = myURL;
SC.get('http://api.soundcloud.com/resolve.json?url=' + permalink_url + '/tracks&client_id=' + client_id, function (result) {
trackID = result.id;
});
callback(trackID);
}
transfer("", function (num) {
//$(".item").text(num);
SC.get("/tracks/" + num, function (sound) {
SC.stream("/tracks/" + num, function (sound) {
//somefountion
});
});
});
在SC.get
,trackID
得到更新,但在此函数之外的任何地方都是未定义的。知道吗?
提前谢谢。
您的函数SC.get
看起来像是在执行异步操作,可能是Ajax调用,因此在下一行callback(trackID);
上执行的内容不会在Ajax调用响应的同时执行。
将回调函数移动到SC.get
中会更有意义,比如:
SC.get('http://api.soundcloud.com/resolve.json?url=' + permalink_url + '/tracks&client_id=' + client_id, function (result) {
var trackID = result.id;
callback(trackID);
});
相关文章:
- React:使用索引变量更新嵌套集合
- 范围变量更新,但不更新视图
- 正在将代码库中的C#变量更新到asp.net
- 使用变量更新剑道图表系列的数据会导致重绘将列从图表上绘制出来
- MongoDB 用变量更新数组
- 将变量更新为函数中的参数
- Javascript-变量更新
- 使用Javascript和PHP变量更新页面上的数据
- Angular js 在
标签上的变量更新$scope动画
- 如何通过参数变量更新对象的属性值
- 如何在范围变量更新时更新模板
- 简单的变量更新和写入页
- 函数在变量更新后的某个时间点执行
- javascript OO如何用一些JSON变量更新self参数
- 使用$set中的变量更新mongodb的node.js
- 将声明的null变量更新为布尔值
- 在查询部分使用变量更新查询
- 如何在回调中使用变量更新文档?
- 通过AJAX用PHP变量更新URL
- 防止在没有javascript的情况下在页面刷新后进行变量更新