Future<Dimension> get dimension async { if (_dimension != null) { return _dimension!; } else { Completer<Dimension> completer = Completer<Dimension>(); _dimensionCompleter.add(completer); return completer.future; } }