2013-07-07 31 views
0

我試圖使用$ .get()從服務器檢索數據,並將其分配給一個變量以使用它。例如:

$.get('htmllink', {}, function(results){ 

//do stuff here 

}); 

var morestuff = ; //$.get() data goes here 

問題是,我無法得到任何東西在圓括號之外工作。一切都被視爲內部變量或東西。我錯過了什麼?

+0

爲什麼你不能指定變量的回調裏面,做你的事情嗎?什麼阻止你。?你能提供更多的案例嗎? – mohkhan

+0

這看起來像一個類似的情況,我會檢查出來。我試圖將它分配給外面的東西,因爲我缺乏知識導致了一些奇怪的問題。我會仔細研究一下併發布更新。 – Alex

回答

2

您需要在回調函數中完成所有處理。這是因爲對$.get的調用僅啓動一個異步請求,然後在請求開始後但在完成之前執行下一行(var morestuff = ...)。

$.get('htmllink', {}, function(results){ 

    //do stuff with results in here 

}); 
1

這裏的問題是$ .get請求是異步(Ajax),所以這裏有一個時間問題。

var morestuff = 

將在Ajax調用返回之前運行,因此您將不具有要分配的值。

你必須在回調Ajax請求的結果進行交互,以訪問它

$.get('htmllink', {}, function(results){ 

//all code that depends on results must run inside here 

}); 

//you can't execute code here that depends on the Ajax call