Future<String> getLine(){ Completer c = Completer(); if (script.isNotEmpty){ c.complete(script.removeFirst()); } return c.future.then((value) => value as String); }