我试图从jsonp请求的结果中创建一个变量,并且稍后在脚本中使用此变量。但似乎在使用变量的部分在jsonp请求完成之前触发。在jsonp请求完成之前尝试读取var
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.onFlip(function() {
//Doing stuff
}
功能和我不能把所有的这些在的onSuccess功能。
那么,你*不能*做的是访问结果,你试图访问它。相反,任何依赖于'result'变量的代码都需要放在'success'回调中。 – 2012-02-24 19:54:55
很好的建议,但我有功能,将在稍后调用,这取决于画廊变种。我为我的问题添加了更多信息。 – Spoeken 2012-02-25 03:25:10
执行此操作的唯一方法(不使用'async:false',这很糟糕)是存储'jqXHR'对象,稍后将事件绑定到完成时,您需要运行需要它返回的数据的代码。 – 2012-02-25 03:26:39