The article很好地了解了如何在Flex中处理sqlite;但是它并没有深入到如何处理异步数据访问。
例如,如果我有一个执行以下操作的EmployeesDAO:
updateEmployee(emp:Employee):void
findEmployee(emp:Employee):无效
findAllEmployees():ICollectionView
等等..
只要EmployeesDAO实现异步模式,这些方法仅在连接数据库并创建表之后才是合法的。客户端必须了解这种异步性质才能使用这些方法,因为以下情况将引发SQLErrorOperation,因为findAllEmployees将在连接数据库之前尝试执行“ SELECT”操作:
var dao:IEmployeesDAO = new EmployeesDAO();
var employees:ArrayCollection = dao.findAllEmployees();
处理异步DAO的最佳实践是什么?是否可以从数据访问对象的客户端隐藏异步性质(即,客户端不知道它是使用同步还是异步DAO)?
最佳答案
我知道解决此类问题的唯一方法是使用将结果传递给回调。这就是我们解决监听各种异步令牌或事件消息的方式。