FlowR<T> class
abstract
- Inheritance
- Mixed-in types
-
- FlowRMx<
T> - UpdatableMx<
T>
- FlowRMx<
- Implementers
Constructors
- FlowR()
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- initValue → T
-
when
_subjectinit, get seed valueno setter - logExtra → LogExtra?
-
set put log type
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
stream
↔ ValueStream<
T> -
subject.streamgetter/setter pairoverride-getter -
subject
→ BehaviorSubject<
T> -
no setter
- value → T
-
subject.valueno setteroverride
Methods
-
autoDispose<
T extends StreamSubscription?> (T subs, {String? tag}) → T -
inherited
-
debounce<
R> (Object tag, Duration duration, FutureOr< R> action(), {Duration? maxDuration}) → FutureOr<R?> -
debounce 防抖: 停止操作后等待
duration执行最后一次。maxDuration: 可选,解决“无限重置”问题。如果持续触发超过此时间,强制执行一次。inherited -
dispose(
) → void -
dispose
_subjectoverride -
frPrint(
String message, {DateTime? time, int? sequenceNumber, int? level, String? name, Zone? zone, Object? error, StackTrace? stackTrace}) → dynamic -
inherited
-
isDebounceLocked(
Object tag) → bool -
检查是否正在防抖等待中
inherited
-
isMutexLocked(
Object tag) → bool -
检查是否正在执行 mutex 任务
inherited
-
isThrottleLocked(
Object tag) → bool -
检查是否处于节流冷却期
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 -
logExtraprint stack frame infonamelogger.name null: and iflogExtra==null: will use 'runtimeType' else: will use stack frame infostackTracewill print with red color by dev.log but iferror== null: will ignorestackTraceinherited -
mutex<
R> (Object tag, FutureOr< R> action()) → FutureOr<R?> -
mutex 互斥锁 (Exhaust): 立即执行,执行期间的触发直接丢弃。
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
put(
T value) → T -
put value to
_subjectoverride -
putError(
Object error, [StackTrace? stackTrace]) → void -
put error value to
_subjectoverride -
putWithLogging(
T value, {OnLogging< T> ? logging}) → T -
runCatching<
R> (FutureOr< R?> block(), {FutureOr<R?> onSuccess(R data)?, FutureOr<R?> onFailure(Object e, StackTrace s)?, bool ignoreSkipError = true, int slowlyMs = 0, Object? debounceTag, Object? throttleTag, Object? mutexTag}) → 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.onFailureinherited -
skpIfNull(
Object? obj, String reason) → void -
if
obj==null, throw SkipError ref skpIfinherited -
skpNull<
T> (T? obj, String reason) → T -
if
obj== null: throw SkipError else: returnobj!inherited -
subBy<
T extends StreamSubscription> (String tag) → T -
inherited
-
throttle<
R> (Object tag, Duration duration, FutureOr< R> action(), {bool ensureLast = false}) → FutureOr<R?> -
throttle 节流: 固定频率执行。
配合 mutex 解决异步任务重叠问题:如果周期到了但上次任务还没跑完,直接跳过。
ensureLast: 如果为 true,则在节流期间的最后一次触发将被防抖补发。inherited -
toString(
) → String -
A string representation of this object.
inherited
-
update(
FutureOr< T> updater(T old), {dynamic onError(Object e, StackTrace s)?, int slowlyMs = 100, Object? debounceTag, Object? throttleTag, Object? mutexTag, dynamic ignoreSkipError = true, String onPutLogging(T cur)?, OnLogging<T> ? logging}) → FutureOr<T?> -
updaterif return value, will callputif return null, will not callput/putErroronErrorif set null,will callputErrorif set function value, will not callputError, you can invokeputErrormanuallyslowlyMsif set <=0 value, will ignore debounce/throttleTagdebounceTagenable debounce, require unique within the VM scopethrottleTagenable throttle, require unique within the VM scopemutexTagenable concurrency lock (Exhaustive behavior), if the previous update with the same mutexTag is still running, the current update will be ignored.ignoreSkipErrorrefrunCatching.ignoreSkipErroroverride -
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