我正在尝试根据jsonp请求的结果创建一个变量,并稍后在脚本中使用此变量。但是似乎在jsonp请求完成之前触发了使用变量的部分。
function onSuccess(data) {
var result = data['result'];
console.log(result);
}
function onError(data) {
alert(data);
}
$.ajax({
url:"http://suneeriksen.unboxer.org/",
cache: false,
dataType: 'jsonp',
jsonp: 'callback',
timeout: 5000,
success: onSuccess,
error: onError
});
var gallery,
el,
i,
page,
dots = document.querySelectorAll('#nav li'),
slides = result //this is where I try to fetch the variable
];
我试图弄清楚如何做到这一点。我试图将jsonp请求放入一个函数中,并像这样完成:
var slides = jsonpResult();
任何线索该怎么办?
编辑:
我也有使用gallery变量的函数
gallery.onFlip(function () {
//Doing stuff
}
而且我不能将所有这些都放在onSuccess函数中。
最佳答案
有两种方法:
通过在ajax调用选项中设置async: true
来使AJAX调用不是A(同步)(请注意,现在不赞成使用此方法)。
要么:
请从成功回调内部调用使用slides
变量的任何代码(如果将来需要,也可以在其中进行赋值)。
关于javascript - 尝试在jsonp请求完成之前读取var,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9437124/