当前位置:  开发笔记 > IOS > 正文

AS3 - 如何同步加载异步调用?

如何解决《AS3-如何同步加载异步调用?》经验,为你挑选了1个好方法。

我有一个异步加载Web服务的用户对象的函数.

我将此函数调用包装在另一个函数中并使其同步.

例如:

    private function getUser():User{
            var newUser:User;
            var f:UserFactory = new UserFactory();

            f.GetCurrent(function(u:User):void{
                newUser = u;
            });

            return newUser;
        }

UserFactory.GetCurrent看起来像这样:

public function GetCurrent(callback:Function):void{ }

但我的理解是,无法保证当调用此函数时,newUser实际上将成为新用户?

你如何在Flex中完成这种类型的返回功能?



1> inferis..:

这种疯狂的方式.

说真的,你最好不要强制异步调用某种同步架构.了解事件处理系统如何对您有利,并为结果事件添加处理程序.事实上,这是直接来自flexcoders FAQ 的建议:

Q: How do I make synchronous data calls?

A: You CANNOT do synchronous calls. You MUST use the result event. No,
you can't use a loop, or setInterval or even callLater.  This paradigm is
quite aggravating at first. Take a deep breath, surrender to the
inevitable, resistance is futile.

There is a generic way to handle the asynchronous nature of data service
calls called ACT (Asynchronous Call Token). Search for this in
Developing Flex Apps doc for a full description.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有