Diferencia entre revisiones de «Flutter DART Programación asíncrona»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 16: Línea 16:
  
  
 +
 +
<center>
 +
{{#ev:youtube|ACjGU5tFgT0}}
 +
</center>
  
  
Línea 48: Línea 52:
 
<br />
 
<br />
 
===Gestión de errores===
 
===Gestión de errores===
 +
 +
<center>
 +
{{#ev:youtube|QL8MGijbFeo}}
 +
</center>
 +
 +
:<syntaxhighlight lang="java" enclose="div" highlight="8,11,24,26" >
 
void main() {
 
void main() {
  
Línea 73: Línea 83:
 
   //throw('Exepción no controlada');
 
   //throw('Exepción no controlada');
 
    
 
    
−
   return Future.delayed(Duration(seconds: 3),() => Future.error('Error controlado'));
+
   return Future.delayed(Duration(seconds: 3),() => Future.error('Error controlado'));
−
 
 
−
 
 
−
 
 
 
}
 
}
 +
</syntaxhighlight>
 +
 +
 +
  
  

Revisión del 10:30 12 jul 2021

Introducción

  • La programación asíncrona hace referencia al uso de threads para ejecutar en modo 'paralelo' al hilo principal otra serie de tareas.



Futures

  • Más información:



void main() {

  print('Inicia programa');
  
  getImagenes('imagenes/animales').then(
    (datos) => print(datos)
  );
  
  print('Fin programa');
  
}

Future<List<String>> getImagenes(String path){
  
  List<String> datos = ['1.jpg','2.jpg','3.jpg','4.jpg'];
  
  
  return Future.delayed(Duration(seconds: 4),() => datos);  // Paramos el hilo durante 4 segundos
  
  
  // return Future.value(datos);
  
}



Gestión de errores

void main() {

  print('Inicia programa');
  
  try {
    getImages('imagenes/animales').then((datos) {
      datos.forEach((elem) => print('Dato:$elem'));
     }).catchError((e) { print(e);} );
    
  }
  catch(e){
    print('Excep:$e');
  }
  print('Fin programa');
  
}

Future<List<String>> getImages(String path){
  
  List<String> imagenes = ['1.jpg','2.jpg','3.jpg'];
  
  // Búsqueda de imágenes a partir del path
  
  //throw('Exepción no controlada');
  
  return Future.delayed(Duration(seconds: 3),() => Future.error('Error controlado'));  
}





Enlace a la página principal de la UD2

Enlace a la página principal del curso




-- Ángel D. Fernández González -- (2021).