BaseViewModel

open class BaseViewModel<out V : IView> : ViewModel, CoroutineScope

BaseViewModel.

Author

Ayvytr 's GitHub

Since

0.0.7 增加performShowMessage,解决launchFlow, zipFlow onError默认实现 view.showMessage(it.stringId) 不适用网络请求错误的问题

0.0.3 修改view为protect

0.0.2 变更职能:增加BaseViewModel泛型IView,支持BaseActivity, BaseFragment重写: 1.方便接口回调写在BaseViewModel中,Activity,Fragment只做需要的ui回调 2.方便回传参数.

增加 zipFlow

0.0.1 增加launchFlow等基础功能

Constructors

BaseViewModel
Link copied to clipboard
fun BaseViewModel()

Functions

clear
Link copied to clipboard
@MainThread
fun clear()
getTag
Link copied to clipboard
open fun <T : Any> getTag(p0: String): T
launchFlow
Link copied to clipboard
fun <T> launchFlow(request: suspend () -> T, onSuccess: (T) -> Unit, onError: (NetworkException) -> Unit = { performShowMessage(it) }, showLoading: Boolean = true, retry: Boolean = false, repeatSameJob: Boolean = false)

launchflow实际在这里执行.

setIView
Link copied to clipboard
fun setIView(v: @UnsafeVariance V)
setTagIfAbsent
Link copied to clipboard
open fun <T : Any> setTagIfAbsent(p0: String, p1: T): T
zipFlow
Link copied to clipboard
@JvmOverloads
fun <T, R, OUT> zipFlow(request1: suspend () -> T, request2: suspend () -> R, transform: (T, R) -> OUT, onSuccess: (OUT) -> Unit, onError: (NetworkException) -> Unit = { performShowMessage(it) }, showLoading: Boolean = true, retry: Boolean = false, repeatSameJob: Boolean = false)

通过transform,合并request1请求的Trequest2请求的RonSuccess返回OUT

Properties

coroutineContext
Link copied to clipboard
open override val coroutineContext: CoroutineContext