我試圖從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