O que são construtores Future no Flutter e como usá-los?
sobes.tech IA
Resposta da IA
Os construtores Future no Flutter são usados para criar objetos Future, que representam o resultado de uma operação assíncrona que pode ser concluída no futuro. Eles ajudam a gerir o fluxo de execução do código assíncrono.
Principais construtores:
-
Future(): Cria um Future que será executado após a conclusão da microtarefa atual. Útil para agendar tarefas após o ciclo de eventos atual.
Future(() { // Operação assíncrona print('Isto é executado após a microtarefa atual.'); }); -
Future.delayed(Duration duration, [FutureOr<T> computation()]): Cria um Future que será executado após o atraso especificado.
computationé uma função opcional que é executada após o atraso e retorna um valor Future.Future.delayed(Duration(seconds: 2), () { print('Isto é executado após 2 segundos.'); }); -
Future.value([FutureOr<T>? value]): Cria um Future que já está concluído com o valor especificado. Se o valor for outro
Future, este construtor aguardará a sua conclusão.Future<int>.value(123).then((value) => print('Valor é: $value')); -
Future.error(Object error, [StackTrace? stackTrace]): Cria um Future que já está concluído com um erro especificado.
Future.error('Algo correu mal').catchError((error) => print('Erro: $error')); -
Future.sync(FutureOr<T> computation()): Cria um Future que realiza o cálculo de forma síncrona imediatamente. Se o cálculo retornar um Future, este construtor aguardará a sua conclusão.
Future.sync(() { print('Isto executa-se de forma síncrona.'); return 456; }).then((value) => print('Valor síncrono: $value'));
Uso de then, catchError e whenComplete para lidar com o resultado:
Future.delayed(Duration(seconds: 1), () => 'Olá, Mundo!')
.then((result) {
// Executa em caso de sucesso
print(result);
})
.catchError((error) {
// Executa em caso de erro
print('Ocorreu um erro: $error');
})
.whenComplete(() {
// Executa independentemente do sucesso ou erro
print('Future concluído.');
});