2013-02-04 79 views
3

如何在Javascript回調函數中獲取用戶狀態?就像我有一個Javascript函數進行異步調用,如下所示。現在在回調函數中,我需要訪問userstate。我怎樣才能做到這一點?在Silverlight中我們有用戶類的東西。我們在JavaScript中是否也有類似的機制?請協助。Javascript異步函數調用:在回調函數中檢索調用函數參數

注意:我不想使用全局變量,因爲Func1()將在For循環中執行。

function Func1() { 
     var userState = "someValue"; 
     geocoder.asyncCall(parameters , CallBack); 
    } 


    function CallBack(result) { 

     // Use result 
     // How to access userState in this function 
    } 

回答

5

試試這個代碼:

function Func1() { 
    var userState = "someValue"; 
    geocoder.asyncCall(parameters ,function(){ 
     CallBack(userState); 
    }); 
} 


function CallBack(result) { 

    // Use result 
    // How to access userState in this function 
} 

更新

function PlotAddressOnMap(address) { 
    var address = address; 
    var userState="userState"; 
    geocoder.geocode({ 'address': address }, CityDetailsReceived(userState)); 
} 

function CityDetailsReceived(userState) { 
    return function(results, status){ 
     //your code 
    } 
} 
+0

雖然我收到userState但我現在沒有得到預期的結果。其實我使用谷歌API如下: //函數獲取狀態詳細信息使用谷歌地理編碼器 函數PlotAddressOnMap(地址){ var address = address; var userState =「userState」; (''地址':地址},CallBack(userState)); } 功能CityDetailsReceived(userState,結果,狀態){} 雖然我能得到現在userState,但我沒有得到的結果和狀態變量預期的結果。 –

+0

@ user1966824我更新了我的帖子,請重試。 – pktangyue

4
function Func1() { 
    var userState = "someValue"; 
    geocoder.asyncCall(parameters , CallBack(userState)); 
} 


function CallBack(userState) { 
    return function(result){ 
     // userState is accessible 
    } 
} 
+0

儘管我正在獲取userState,但我現在沒有收到預期的結果。其實我使用谷歌API如下: //函數獲取狀態詳細信息使用谷歌地理編碼器 函數PlotAddressOnMap(地址){ var address = address; var userState =「userState」; (''地址':地址},CallBack(userState)); } 功能CityDetailsReceived(userState,結果,狀態){} 雖然我能得到現在userState,但我沒有得到的結果和狀態變量預期的結果。 –