我被这个异步函数问题困住了。我需要使用从回调函数中获取的数据设置一个全局变量。我该怎么做?
var soundId;
soundcheck(soundId, function (num){getSound(soundId, num)});
//callback
function getSound (soundId, result) {
var res = result;
if (!soundId) {
soundId = res;
}
console.log(soundId);
};
function soundcheck(soundId, callback) {
var lpid = $("a#entered_user_link").attr('href').substring(6);
chrome.extension.sendMessage({lpid: lpid}, function(response) {
if (response.resp) {
check = response.resp;
callback(check);
}
});
};
// i need to put response in this variable to use it in future
console.log(soundId);
最佳答案
您可能希望保持简单,特别是不要隐藏变量。
var soundId;
soundCheck(function(result) {
if(result) {
soundId = result;
};
});
var soundCheck = function(callback) {
var lpid = $("a#entered_user_link").attr('href').substring(6);
chrome.extension.sendMessage({lpid: lpid}, function(response) {
callback(response.resp);
});
};
毕竟没有理由传递 soundId
。
关于asynchronous - 如何从异步函数设置全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12998003/