Статья дает хорошее представление о том, как бороться с sqlite во Flex;но он не углубляется в то, как решать асинхронный доступ к данным.
Например, если у меня есть EmployeesDAO, который выполняет следующие действия:
- updateEmployee (emp: Employee):void
- findEmployee (emp: Employee): void
- findAllEmployees (): ICollectionView
и т. д.
До тех пор, пока EmployeesDAO реализуетВ асинхронном режиме эти методы допустимы только после подключения БД и создания таблиц.Клиент должен знать об этой асинхронной природе, чтобы использовать эти методы, так как следующие вызовут SQLErrorOperation, так как findAllEmployees будет пытаться выполнить операцию «SELECT» до того, как база данных будет подключена:
var dao:IEmployeesDAO = new EmployeesDAO();
var employees:ArrayCollection = dao.findAllEmployees();
Что такоелучшая практика, чтобы иметь дело с реализацией асинхронного DAO?Можно ли скрыть асинхронную природу от клиента объектов доступа к данным (т. Е. Клиент не знает, использует ли он синхронизацию или асинхронные DAO)?