首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery ajax,getJSON提供null

jquery ajax,getJSON提供null
EN

Stack Overflow用户
提问于 2012-05-25 00:28:29
回答 4查看 93关注 0票数 1

我有一个函数,我想从一个php文件中获取值:

代码语言:javascript
复制
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返回值的函数。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-25 00:30:09

$.getJSON是异步的,这就是为什么您没有定义:alerts是在ajax调用仍在运行时执行的

您可以在成功事件时调用函数,将json作为参数传递,例如

代码语言:javascript
复制
function setPhrases(lang) {
    $.getJSON(locationHostname()+'json?json=lang&lang='+lang,
        function(json) {
            continueProcessing(json)
        }
    );
}

function continueProcessing(obj) {
  ...
}
票数 2
EN

Stack Overflow用户

发布于 2012-05-25 00:31:01

不能。.getJSON异步运行,除非它非常快,否则alert(2)alert(3)将在它完成之前运行。您需要将alert(2)alert(3)作为成功函数的一部分,或者使用Deferred

编辑:我猜由于它是电子的,它可能闪电般的速度,甚至还不够!

票数 0
EN

Stack Overflow用户

发布于 2012-05-25 00:31:09

我认为你不能在第三个alert()中获得phrases,因为$.getJSON()的异步行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10741570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档