Future<R> call(List<dynamic> args) { final completer = Completer<R>(); _queue.add(_QueueItem(args: args, completer: completer)); _processQueue(); return completer.future; }