2
respostas

Projeto: chat no futuro

import 'dart:io';

void main() async {
  Future futureObj =
      Future(() => print('Iniciando a conversa...')).then((value) async {
    String? resposta;
    print('Olá, deseja iniciar uma conversa?');

    try {
      resposta = stdin.readLineSync().toString().toLowerCase();

      if (resposta.isEmpty) {
        throw Exception();
      } else if (resposta == 'sim' || resposta == 'positivo') {
        await chat();
      }
    } catch (e) {
      print(e);
      print('Ops!\nParece que você esqueceu de digitar a sua resposta.\n');
    } finally {
      print('Conversa encerrada.\nPrograma será finalizado em: 3');
      await Future.delayed(Duration(seconds: 1));
      print('Programa será encerrado em: 2 ');
      await Future.delayed(Duration(seconds: 1));
      print('Programa será encerrado em: 1 ');
      await Future.delayed(Duration(seconds: 1));
      print('Programa finalizado');
    }
  });
}

Future chat() async {
  print('João: Bom dia, grupo!\n');
  await Future.delayed(Duration(seconds: 2));
  print('Mariana: Bom dia! Tudo bem?\n');
  await Future.delayed(Duration(seconds: 2));
  print('João: Suave, e vc?\n');
  await Future.delayed(Duration(seconds: 1));
  print('Mariana: Certinho.\n');
  await Future.delayed(Duration(seconds: 3));
}
2 respostas

Fala Guilherme, de boa ?

Cara sua solução ficou bem maneira :)

Ficou com alguma dúvida na hora de fazer ? Conta pra gente como foi fazer e como tu fez pra chegar nisso.

E aí matheus!! Por aqui tudo tranquilo, e com você? Obrigado pelo elogio!!

Só passei um tempo tentando entender o motivo das mensagens não estarem chegando após o tempo que eu tinha colocado, mas aí percebi que elas estavam sem o await. Depois eu passei o trecho de String? resposta até o final do finally pra dentro do meu objeto future e as coisas funcionaram direitinho. Demorei um pouco para entender o que foi pedido na tarefa, mas acho que deu certo