当前位置: 首页 > 面试题库 >

Extjs,返回Ajax返回值

陈德泽
2023-03-14
问题内容

我在使用Ajax时遇到问题。

function GetGrantAmazonItemCnt(){
    var cnt;
    Ext.Ajax.request({
        url : '',
        params : {},
        success :function(response){
            cnt = response.responseText;
        }
    });
    return cnt; 
}

问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。

有没有办法使正确的返回响应值?

谢谢!


问题答案:

由于AJAX请求是异步的,因此您的cnt变量将在请求返回并调用成功处理程序之前返回。

我建议重构您的代码以解决此问题。

一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方法将值传递到需要去的地方:

function GetGrantAmazonItemCnt(){
    var cnt;
    Ext.Ajax.request({
        url : '',
        params : {},
        success :function(response){
            cnt = response.responseText;
            FunctionThatCalledMe(cnt);
        }
    });
}


 类似资料:
  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • 请参考:http://www.kancloud.cn/manual/thinkphp/1719

  • 问题内容: 我正在尝试使用Ajax从服务器获取信息。页面xxx.php是仅写入123的页面。但是,当我想返回该页面的内容时,它返回null。 问题答案: 请注意,ajax是“异步的”。因此,在myFunct()完成执行时,可能尚未收到对服务器调用的响应。您可以将处理来自服务器调用的数据的逻辑放在ajax的“成功”中。

  • 使用ajaxReturn方法返回JSON格式或者XML格式数据 $data['a'] = 'www'; $data['b'] = 'vvvc'; $this->ajaxReturn($data); //默认返回JSON格式数据

  • 问题内容: 我是AJAX的新手,并且对PHP传递回jQuery感到困惑。因此,您具有如下的AJAX函数: (我从ajax的另一个StackOverflow页面上获得了此信息。) 但是在其他各种资源上,他们将拥有成功部分,如下所示: 我只是困惑于是什么决定了这个变量的命名?如果PHP最终回显了一个数组: 我如何从AJAX获得此信息? 问题答案: Ajax- Requests获取整个站点。因此,您不会

  • 问题内容: function ChatServerQuery(data_json) { 我执行对服务器的请求的功能。问题是我无法返回从服务器收到的文本。我不知道如何从匿名函数(事件成功)转移到ChatServerQuery(可以在其中轻松将其取回)。 问题答案: 您最好更改您的方法以反映AJAX请求的异步性质。 使用回调函数 然后,您将使用它: 使用承诺对象 返回实现Promise iterfac