回调javascript仍未定义

时间:2013-05-27 17:32:52

标签: javascript jquery

我试图得到一个简单的"字符串"来自回调函数,它仍未定义。

这就是我想要做的事情:

我有一个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",但它的遗骸"未定义"。 那是为什么?

3 个答案:

答案 0 :(得分:2)

添加其他答案,重构代码可能是个好主意,这样您就可以使用JavaScript的异步特性。

在你的回调函数中(在上面的代码中,你赋值变量myReutn),你可能想调用一个函数来做你想对Func1之外的那个值做什么。

答案 1 :(得分:0)

$.post以异步方式运行 。也就是说,它会在你启动它之后的一段时间内完成,但你的代码不会等待它发生。在您返回时,回调尚未运行。

答案 2 :(得分:0)

$.post异步,这意味着您对Func1的调用将在实际HTTP帖子发生之前返回。一旦您的脚本完成,并且HTTP响应从帖子返回,那么您的内联回调将会运行。