FlowR<T> class abstract

FlowR --- Basic mixin --- BaseFlowR 核心基础功能: 使用Stream传递数据 UpdatableMx 提供 update 方法, 自动捕获异常 LoggableMx 打印putError的异常于StackTrace

开箱即用的 FlowR基类

注意:

  • 不要在FlowR内部存储任何状态数据: 而应该在Tvalue中存储, tag 代表Tvalue(Model)的实例, 而非FlowR (ViewModel)的实例
Inheritance
Mixed-in types
Implementers

Constructors

FlowR.new()

Properties

hashCode int
The hash code for this object.
no setterinherited
initValue → T
when _subject init, get seed value
no setter
logExtra LogExtra?
set put log type
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
slowly → Slowly<Object>
no setterinherited
stream ValueStream<T>
subject.stream
getter/setter pairoverride-getter
subject → BehaviorSubject<T>
no setter
value → T
subject.value
no setteroverride

Methods

autoDispose<T extends StreamSubscription?>(T subs, {String? tag}) → T
inherited
debounceMs<R>(Object tag, R func, {int ms = 200}) Future<R?>
inherited
dispose() → void
dispose _subject
override
frPrint(String message, {DateTime? time, int? sequenceNumber, int? level, String? name, Zone? zone, Object? error, StackTrace? stackTrace}) → dynamic
inherited
logger(String message, {LogExtra? logExtra, DateTime? time, int? sequenceNumber, int level = 0, String? name, Zone? zone, Object? error, StackTrace? stackTrace, bool uriFrame = true}) → dynamic
logExtra print stack frame info name logger.name null: and if logExtra ==null: will use 'runtimeType' else: will use stack frame info stackTrace will print with red color by dev.log but if error == null: will ignore stackTrace
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
put(T value) → T
put value to _subject
override
putError(Object error, [StackTrace? stackTrace]) → void
put error value to _subject
override
runCatching<R>(FutureOr<R?> block(), {FutureOr<R?> onSuccess(R data)?, FutureOr<R?> onFailure(Object e, StackTrace s)?, dynamic ignoreSkipError = true}) FutureOr<R?>
run and catch error, then putError
override
skpIf(bool condition, String reason) → void
if you want interrupt the normal flow, but not trigger runCatching.onFailure
inherited
skpIfNull(Object? obj, String reason) → void
if obj ==null, throw SkipError ref skpIf
inherited
skpNull<T>(T? obj, String reason) → T
if obj == null: throw SkipError else: return obj!
inherited
subBy<T extends StreamSubscription>(String tag) → T
inherited
toString() String
A string representation of this object.
inherited
update(FutureOr<T> update(T old), {dynamic onError(Object e, StackTrace s)?, int slowlyMs = 100, Object? debounceTag, Object? throttleTag, dynamic ignoreSkipError = true}) FutureOr<T?>
update if return value, will call put if return null, will not call put/putError onError if set null,will call putError if set function value, will not call putError, you can invoke putError manually slowlyMs if set <=0 value, will ignore debounce/throttleTag debounceTag enable debounce, require unique within the VM scope throttleTag enable throttle, require unique within the VM scope ignoreSkipError ref runCatching.ignoreSkipError
inherited
updateRaw(FutureOr<T> up(T old), {dynamic onError(Object e, StackTrace s)?, int slowlyMs = 100, Object? debounceTag, Object? throttleTag, dynamic ignoreSkipError = true}) FutureOr<T?>
Deprecated use 'update'
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited