dart dart-editor

Función Async/Await en Dart 1.8



dart-editor (1)

Actualización 2

La compilación nocturna más reciente también es compatible con async*

void main() { generate().listen((i) => print(i)); } Stream<int> generate () async* { int i = 0; for(int i = 0; i < 100; i++) { yield ++i; } }

Actualizar

yield y el yield* en un método marcado como sync* (que devuelve un Iterable) ya son compatibles con 1.9.0-edge.43534

void main() { var x = concat([0, 1, 2, 3, 4], [5, 6, 7, 8, 9]); // x is an Iterable which iterates over the values 1 to 9 print(x); } // A method marked `sync*` returns an `Iterable` concat(Iterable left, Iterable right) sync* { yield* left; yield* right; }

void main() { print(filter([0, 1, 2, 3, 4, 5], (x) => x.isEven)); } filter(ss, p) sync* { for (var s in ss) { if (p(s)) yield s; } }

async* funciones del generador async* (que devuelven un flujo) aún no son compatibles.

Original

El soporte básico ya está disponible.
Ver https://www.dartlang.org/articles/await-async/ para más detalles.

main() async { // await print(await foo()); try { print(await fooThrows()); } catch(e) { print(e); } // await for var stream = new Stream.fromIterable([1,2,3,4,5]); await for (var e in stream) { print(e); } } foo() async => 42; fooThrows() async => throw ''Anything'';

¿Está en la versión 1.8 como una característica experimental como enum o no? ¿Y cómo puedo usarlo en el Dart Editor? ¿Hay algún buen artículo o aplicación de ejemplo que pueda ayudarme a comenzar con esto?

Cuando todavía es una característica experimental, ¿qué se recomienda para los paquetes de pub? ¿Está bien usar esa función en paquetes de pub o no?