我试图得到一个简单的"字符串"来自回调函数,它仍未定义。
这就是我想要做的事情:
我有一个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 :(得分:2)
添加其他答案,重构代码可能是个好主意,这样您就可以使用JavaScript的异步特性。
在你的回调函数中(在上面的代码中,你赋值变量myReutn
),你可能想调用一个函数来做你想对Func1
之外的那个值做什么。
答案 1 :(得分:0)
$.post
以异步方式运行 。也就是说,它会在你启动它之后的一段时间内完成,但你的代码不会等待它发生。在您返回时,回调尚未运行。
答案 2 :(得分:0)
$.post
是异步,这意味着您对Func1
的调用将在实际HTTP帖子发生之前返回。一旦您的脚本完成,并且HTTP响应从帖子返回,那么您的内联回调将会运行。