2013-05-27 116 views
-1

我試圖從回調函數中獲取一個簡單的「字符串」,它仍然未定義。回調javascript仍未定義

這是林試圖做:

我有一個Ajax調用,並且其收到「你好」 messege。 - >

function Func1(textConent, lineId) { 

var op = "3"; 
var url = "../xxx/xxx.aspx"; 
var myReutn; 

//id, lineId, place, textContent, summaryId 

$.post(url, { url: url, op: op, lineId: lineId, textConent: textConent }, function (e) { 

    myReutn = e; 


}); 

return myReutn; 

}

然後我嘗試觸發此函數:

var e = Func1(myText, lineId); 

,然後提醒 「E」,但其遺蹟 「不確定」。 這是爲什麼?

回答

0

$.post異步運行。也就是說,它會在你啓動它之後的一段時間完成,但是你的代碼不會坐等待這種情況發生。在你回來的時候,回調還沒有運行。

0

$.post異步,這意味着你要Func1的通話將返回前實際HTTP後發生。一旦你的腳本完成了,並且HTTP響應從帖子中回來,那麼你的內聯回調就會運行。

2

添加到其他答案中,重構代碼可能是一個好主意,以便您可以使用JavaScript的異步特性。

在你的回調函數中(在上面的代碼中,你指定變量myReutn),你可能想要調用一個函數,在Func1之外調用一個你想要的值。