现在我有三个文件,两个javascript文件和一个将调用这两个javascript文件的html文件。在我的第一个javascript文件中,我们称之为part1.js,我有这样的内容:
var dataval;
$.get('example.cgi', function(data){
dataval = data;
});
在part2.js中,我试图调用此dataval值。但它不起作用,因为我假设dataval在get函数内部,因此是一个本地值。无论如何我能抓住这个价值吗?我的html文件正在调用这两个javascripts。无论如何我可以访问该变量吗?
谢谢!
答案 0 :(得分:2)
异步调用存在问题。您应该使用回调函数或使用jquery promise功能。
在你的part1.js中,你应该改为定义一个函数:
function callCgi(callback) {
$.get('example.cgi', callback); //Callback will receive the data.
}
然后在part2.js中使用它:
callCgi(function(data) {
//do something with data.
});
或承诺:
function callCgi() {
return $.get('example.cgi');
}
然后在part2.js中使用它:
callCgi().then(function(data) {
//do something with data.
});