Как отправить событие, когда объект готов в Dart?

Я экспериментирую с WebGL в Dart, и я создал класс, который загружает шейдеры из отдельных файлов, и я хотел бы вызвать событие (функцию), когда объект будет готов, поэтому я могу продолжить свое приложение, зная, что мои шейдеры правильно загружены . Кто-нибудь знает простой способ сделать это?


person Fernando    schedule 21.07.2012    source источник


Ответы (1)


Один из подходов заключается в использовании шаблона Future для достижения этой цели:

Future<SomeType> initMyObject(){
   final c = new Completer();

   // Do my object init stuff
   // and when it is complete:
   c.complete(instanceOfSomeType);

   // Return the Future object to any subscribers.
   return c.future;
}

Затем в другом месте вы можете получать уведомления следующим образом:

initMyObject().then((SomeType t){
   //executes when future completes
});
person John Evans    schedule 22.07.2012