异步转同步
Future<T> yRunCompleter<T>(Function(Completer<T> completer) action) { final completer = Completer<T>(); action(completer); return completer.future; }