observe method
MutationCancelFunction
observe({
- MutationOnUpdateInitializedCallback? onUpdateInitialized,
- MutationOnUpdateDataCallback<
R> ? onUpdateData, - MutationOnUpdateErrorCallback? onUpdateError,
- MutationOnUpdateLoadingCallback? onUpdateLoading,
- MutationOnCloseCallback<
R> ? onClose, - bool attach = true,
Implementation
MutationCancelFunction observe({
MutationOnUpdateInitializedCallback? onUpdateInitialized,
MutationOnUpdateDataCallback<R>? onUpdateData,
MutationOnUpdateErrorCallback? onUpdateError,
MutationOnUpdateLoadingCallback? onUpdateLoading,
MutationOnCloseCallback<R>? onClose,
bool attach = true,
}) {
if (onUpdateInitialized != null) {
_onUpdateInitializedList.insert(0, onUpdateInitialized);
}
if (onUpdateData != null) {
_onUpdateDataList.insert(0, onUpdateData);
}
if (onUpdateError != null) {
_onUpdateErrorList.insert(0, onUpdateError);
}
if (onUpdateLoading != null) {
_onUpdateLoadingList.insert(0, onUpdateLoading);
}
if (onClose != null) {
_onCloseList.insert(0, onClose);
}
if (attach) {
_attachCount++;
}
if (isAttached) {
if (_mutateCallback != null) {
final data = _mutateCallback!();
tryMutate(data);
} else if (_mutateAppendCallback != null) {
final data = _mutateAppendCallback!();
tryMutate(data, append: true);
} else {
_initialMutate();
}
}
return () {
_removeObserve(
onUpdateInitialized: onUpdateInitialized,
onUpdateData: onUpdateData,
onUpdateError: onUpdateError,
onUpdateLoading: onUpdateLoading,
onClose: onClose);
if (attach) {
_attachCount--;
}
};
}