Stream<T?> onValueChangedOrDefault(Future<T> defaultValue) => Rx.concat<T?>([ Stream.fromFuture(_cachedValueOrLoading ?? defaultValue), onValueChanged, ]);