我有一个函数,我想从一个php文件中获取值:
var phrases = null;
function setPhrases(lang) {
$.getJSON(locationHostname()+'json?json=lang&lang='+lang,
function(json) {
phrases = json;
alert( 1 + ' ' + phrases);//phrases = [object Object]
});
alert( 2 + ' ' + phrases);//phrases = null
}
setPhrases('en');
alert(3+' '+phrases);//phrases = null如何正确设置警报(3+‘'+phrases);获取对象而不是null?我想使用例如从getJSOn返回值的函数。
谢谢
发布于 2012-05-25 00:30:09
$.getJSON是异步的,这就是为什么您没有定义:alerts是在ajax调用仍在运行时执行的
您可以在成功事件时调用函数,将json作为参数传递,例如
function setPhrases(lang) {
$.getJSON(locationHostname()+'json?json=lang&lang='+lang,
function(json) {
continueProcessing(json)
}
);
}
function continueProcessing(obj) {
...
}发布于 2012-05-25 00:31:01
不能。.getJSON异步运行,除非它非常快,否则alert(2)和alert(3)将在它完成之前运行。您需要将alert(2)和alert(3)作为成功函数的一部分,或者使用Deferred。
编辑:我猜由于它是电子的,它可能闪电般的速度,甚至还不够!
发布于 2012-05-25 00:31:09
我认为你不能在第三个alert()中获得phrases,因为$.getJSON()的异步行为。
https://stackoverflow.com/questions/10741570
复制相似问题