Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ext.Direct:匹配调用的返回值_Javascript_Ajax_Extjs - Fatal编程技术网

Javascript Ext.Direct:匹配调用的返回值

Javascript Ext.Direct:匹配调用的返回值,javascript,ajax,extjs,Javascript,Ajax,Extjs,我正在使用Ext.Direct模块进行一系列Ajax调用。我想在每次调用时保存一些数据,然后将每个返回值与正确的调用进行匹配 在服务器调用中,Ext在JSON数据包中提供一个tid属性可推测的事务标识符,它使用匹配返回值进行调用。问题是,我的客户端Javascript似乎没有任何文档化的方法来捕获传出呼叫的tid 以下方法可以工作,但它使用了undocumented Ext.Direct.TID属性。假设my.namespace.my_action.my_方法是已正确配置的Ext.Direct

我正在使用Ext.Direct模块进行一系列Ajax调用。我想在每次调用时保存一些数据,然后将每个返回值与正确的调用进行匹配

在服务器调用中,Ext在JSON数据包中提供一个tid属性可推测的事务标识符,它使用匹配返回值进行调用。问题是,我的客户端Javascript似乎没有任何文档化的方法来捕获传出呼叫的tid

以下方法可以工作,但它使用了undocumented Ext.Direct.TID属性。假设my.namespace.my_action.my_方法是已正确配置的Ext.Direct API调用:

// Set up a global object in which to store data about pending calls
pendingCalls = {};

.
.
.

// Make a call to the server-side routine, and queue the data
my.namespace.my_action.my_method( call_data );
pendingCalls[ Ext.Direct.TID ] = call_data;

.
.
.
//The handler of the Ext.direct.Provider's "data" event
onData = function( provider, data ) {
    if data.type == "rpc" {
        // Recover the original call_data
        call_data = pendingCalls[ data.tid ];

        // Do something with call_data and data.result
    }
}

我不喜欢使用Ext.Direct类的私有内部。有没有一种官方的方法可以做到这一点,使用Ext.Direct的公共界面?

我在问题中发布的解决方案是有效的,尽管它没有文档记录。既然没有人发布过其他方法,我就坚持使用它。

在您询问的时候,它可能不存在,但如果其他人想知道:

进行ExtDirect调用时,传递参数、回调、作用域和选项

将您的call_数据放入选项中,并在每次响应时将其取回