Python 中的异步 PureMVC

Posted

技术标签:

【中文标题】Python 中的异步 PureMVC【英文标题】:Asynchronous PureMVC in Python 【发布时间】:2011-03-27 21:33:51 【问题描述】:

从底部的缩短版本中获取here 的以下代码,存在此代理:

class DataModelProxy(puremvc.patterns.proxy.Proxy):
    NAME = "DataModelProxy"

    def __init__(self):
        super(DataModelProxy, self).__init__(DataModelProxy.NAME, [])
        self.realdata = Data()
        self.sendNotification(AppFacade.DATA_CHANGED, self.realdata.data)

    def setData(self, data):
        self.realdata.data = data
        print "setData (model) to", data
        self.sendNotification(AppFacade.DATA_CHANGED, self.realdata.data)

引用 PureMVC Python 文档中的here,它说:

代理可能只是管理对本地数据对象的引用,在这种情况下,与其交互可能涉及以同步方式设置和获取其数据。

代理类也用于封装应用程序与远程服务的交互以保存或检索数据,在这种情况下,我们采用异步的习惯用法;在 Proxy 上设置数据(或调用方法),并在 Proxy 从服务中检索数据时监听要发送的通知。

如果是这种情况,当我要检索昂贵且耗时的数据时,如何让我的代理异步执行?

【问题讨论】:

【参考方案1】:

你的问题很有趣。我刚刚研究了 PureMVC,这只是我的想法,没有经过验证。

在 puremvc.patterns.observer 中使用 Notifier 怎么样?或者更简单的方法,在您的异步数据检索函数中,在处理完成时发送通知 :) 这种方式听起来很 PureMVC 方式:通过通知进行通信。我猜唯一需要考虑的是确保通知机制是线程安全的。

还有一个想法。你可以试试Utility - AS3 / Startup Manager背后的想法。

【讨论】:

以上是关于Python 中的异步 PureMVC的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.4 中的“异步 for”

异步等待函数中的 Python asyncio.semaphore

从python中的异步函数修改全局变量[重复]

Python 中的异步 PureMVC

Python 中的协程 无阻塞

python中for循环中的异步作业[重复]