No exemplo da aula fiquei com dúvida do por quê a saída "the value is:42" veio depois de "Done with main"
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!