No exemplo da aula fiquei com dúvida do por quê a saída "the value is:42" veio depois de "Done with main"
No exemplo da aula fiquei com dúvida do por quê a saída "the value is:42" veio depois de "Done with main"
Olá João! Tudo bem?
A ordem das saídas no console se deve ao comportamento assíncrono do Dart. Quando você usa Future
e async/await
, o Dart permite que o código continue executando enquanto espera pela conclusão de operações assíncronas, como o Future.delayed
.
No seu exemplo, a função myFutureErrorFunc
é assíncrona e, quando chamada, ela inicia um processo que leva algum tempo. Enquanto isso, o Dart não fica esperando e continua executando o restante do código, imprimindo "Done with main" imediatamente após chamar myFutureErrorFunc
.
Depois que o Future
é concluído, ele executa o que está no .then()
, imprimindo "the value is: 42". É por isso que essa mensagem aparece depois de "Done with main".
Espero ter ajudado. Conte sempre com o apoio do fórum :)
Um abraço e bons estudos!