【问题标题】:difficult syncronization problem with FLEX commands (in cairngorm)FLEX 命令的同步困难问题(在 cairngorm 中)
【发布时间】:2010-01-08 17:14:34
【问题描述】:

我的问题,简化: 我有一个带有 dataProvider“文档”的 dataGrid 数据网格的一列有一个 labelFunction 获取文档的 project_id 字段,并从可绑定变量“projects”返回项目名称

现在,我调度事件从服务器下载文档和项目,但如果文档在项目之前下载,则标签函数会出错(没有“项目”变量)

因此,我必须对正在执行的命令进行序列化:getDocuments 命令只能在 getProjects 命令之后执行。

不过,在现实世界中,我下载了几十个资源,并且这些命令并不总是组合在一起(所以我不能例如从第一个的 onSuccess() 方法执行第二个命令,因为没有总是他们必须一起执行..)..

我需要一个简单的解决方案..我需要一个想法..

【问题讨论】:

    标签: apache-flex actionscript-3 flex3 concurrency cairngorm


    【解决方案1】:

    如果我理解正确,您需要序列化来自服务器的回复。我通过使用AsyncToken 做到了这一点。

    方法:在调用远程函数之前,给它添加一个“令牌”。例如,身份证。然后,服务器对该特定调用的回复将包括该令牌。这样您就可以将多个调用分开并创建远程调用链。

    其实很酷:

        service:RemoteObject;
        // ..      
        var call:AsyncToken = service.theMethod.send();
        call.myToken = "serialization id";
    
        private function onResult(event:ResultEvent):void 
        {
           // Fetch the serialization id and do something with it
           var serId:String = event.token.myToken;
        }
    

    【讨论】:

    • 我应该补充一点,我没有使用过 Cairngorm。它可能会把事情搞砸,但我上面的方法适用于“普通的旧”Flex,可能也适用于 Cairngorm。
    • 我不明白..我没有使用远程功能..我正在使用 HTTPService 调用返回纯 XML 数据的 http 服务器(它是用 rails 编写的 REST api)可以你的方法还在用吗?
    猜你喜欢
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多