Future<dynamic> schedule(AsyncTask asyncTask) async { final completer = Completer<dynamic>(); _queuedAsyncTaskController.add(AsyncTaskQueueEntry(asyncTask, completer)); return completer.future; }