存储AJAX返回变量

我在将Ajax响应存储到变量时遇到问题。 到目前为止,这是我的代码:

function bbl(phrase) { var lp; $.post( 'babelJS.php', {"phrase" : phrase}, function (data){ lp = data.lp; $("#test1").html(lp); }, 'json' ); $("#test2").html(lp); } 

div test1是正确的字段但不是test2 …为什么lp$.post部分之后不能存活?

谢谢!

更新 :我还希望bbl()返回lp …

更新2

我对以下内容没有更多的好处,这些内容来自常见问题解答,其链接在此post的第一条评论中。

 function getBbl(phrase,callback) { $.post( 'babelJS.php', {"phrase" : phrase}, function (data){ callback(data.locphrase); }, 'json' ); } function bbl(phrase) { var lp getBbl(phrase,function(locphrase){ lp = locphrase; }); return lp; } 

问题是$.post调用是异步的。 发送post后,.html()行正在执行,但在返回post响应之前不会执行lp = data.lp行。

所以这项任务工作正常,但发生得太晚了。 要使其工作,请将.html()行移动到post的成功函数中。