gpt4 book ai didi

javascript - 如何在回调函数中更新和传递变量

转载 作者:行者123 更新时间:2023-11-28 07:57:31 29 4
gpt4 key购买 nike

我正在使用 SoundCloud API,并且我创建了一个带有回调的函数,首先它获取歌曲 URL,然后通过 SoundCloud API 它获取与该 URL 相关的声音 ID,然后将该 ID 传递给回调以将其用于流式传输并更新页面。它确实从 API 收集数据,但变量会在本地更新,并且在公共(public)场合它保持未定义状态。

这里是代码和DEMO: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);
});

关于javascript - 如何在回调函数中更新和传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25881665/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com