Para atender esse requesito será utilizado a sincronização do Future em detrimento do sleep. Com sleep não é possível printar sequencialmente na tela, não com o método write do stdout.
import 'dart:io';
void main() {
stdout.write('Simulating loading.');//stdout.write = print sem newline
Future.delayed(Duration(seconds: 1), () {
stdout.write(".");
} );
Future.delayed(Duration(seconds: 2), () {
print(".");
} );
///Todo e qualquer código que deverá ser executado após a sequência de códigos ácima devem ser inseridos
///no bloco Future abaixo [que será executado após o segundo 3]:
Future.delayed(Duration(seconds: 3), () {
print('{Continue}');
} );
}
Output:
Simulating loading...
{Continue}
OBS: entre os pontos há um intervalo de 1 segundo para serem inserídos na tela, simulando o efeito como se tivesse aguardando um processamento interno.