
With this patch, you can do: ```dart Future<Null> foo() async { try { await controller.forward().orCancel; await controller.reverse().orCancel; await controller.forward().orCancel; } on TickerCanceled { // did not complete } } ``` ...in a State's async method, and so long as you dispose of the controller properly in your dispose, you'll have a nice way of doing animations in sequence without leaking the controller. try/finally works as well, if you need to allocate resources and discard them when canceled. Simultaneously, you can do: ```dart Future<Null> foo() async { await controller.forward().orCancel; await controller.reverse().orCancel; await controller.forward().orCancel; } ``` ...and have the same effect, where the method will just silently hang (and get GC'ed) if the widget is disposed, without leaking anything, if you don't need to catch the controller being killed. And all this, without spurious errors for uncaught exceptions on controllers.
Flutter
Flutter is a new way to build high-performance, cross-platform mobile apps. Flutter is optimized for today's, and tomorrow's, mobile devices. We are focused on low-latency input and high frame rates on Android and iOS.
Flutter is an early-stage open-source project. We are still missing core features like accessibility, text input, localization, and more. However, you can build demos and examples today. We hope you try it out and send us feedback.
-
For information about using Flutter to build apps, please see the getting started guide.
-
For information about contributing code to Flutter itself, please see CONTRIBUTING.md.
Community
Join us in our Gitter chat room or join our public mailing list, flutter-dev@googlegroups.com.
Description
Languages
Dart
75.4%
C++
16.4%
Objective-C++
2.7%
Java
2.7%
Objective-C
0.6%
Other
1.8%