Package-level declarations
Types
Link copied to clipboard
Link copied to clipboard
data class FetchState<TData>(var loading: Boolean? = null, var params: TParams? = null, var data: TData? = null, var error: Throwable? = null) : IFetchStata<TData> , Copyable<FetchState<TData>>
Link copied to clipboard
typealias GenPluginLifecycleFn<TData> = (Fetch<TData>, RequestOptions<TData>) -> PluginLifecycle<TData>
Fetch.pluginImpls 本质是调用GenPluginLifecycleFn函数后保存的PluginLifecycle列表 ,这个函数的入参是Fetch实例与RequestOptions配置。
Link copied to clipboard
使用密封类或者密封接口,可以避免外部继承实现,但是不影响使用接口声明。
Link copied to clipboard
data class OnBeforeReturn<TData>(val stopNow: Boolean? = null, val returnNow: Boolean? = null, val loading: Boolean? = null, val params: TParams? = null, val data: TData? = null, val error: Throwable? = null) : IFetchStata<TData> , Copyable<OnBeforeReturn<TData>>
Link copied to clipboard
data class OnRequestReturn<TData>(val requestDeferred: Deferred<TData>? = null) : Copyable<OnRequestReturn<TData>>
Link copied to clipboard
插件函数 useXXXPlugin
的返回值是真实的插件Plugin对象, 可以通过在useRequestPluginsImpl中调用onInit函数,用来初始化 Fetch.fetchState状态。 插件对象自身实现了协程作用域CoroutineScope,持有Fetch的实例、请求RequestOptions配置等内容。 按需实现IFetch对应Fetch中的各个函数调用,就可以在插件函数useXXXPlugin
中需要使用副作用函数时,间接回调Fetch实例。 具体用例可以参考:useAutoRunPlugin
Link copied to clipboard
插件的生命周期对象:这个对象是插件Plugin.invoke方法执行后的返回值, 用来让插件监听请求的生命周期,当执行异步请求时,会在不同的阶段调用插件的生命周期;
Link copied to clipboard
插件声明周期回调函数的类型定义
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
typealias PluginOnRequest<TData> = (requestFn: SuspendNormalFunction<TData>, params: TParams) -> OnRequestReturn<TData>?
Link copied to clipboard
Link copied to clipboard
Functions
Link copied to clipboard
返回一个空插件,避免直接使用EmptyPlugin实例
Link copied to clipboard
fun <TData : Any> useRequest(requestFn: SuspendNormalFunction<TData>, optionsOf: RequestOptions<TData>.() -> Unit = {}, plugins: Array<ComposablePluginGenFn<TData>> = emptyArray()): RequestHolder<TData>