package com.framework.app.http


/**
 * 发起网络请求, 封装返回结果
 *
 * @param         block : 实际请求数据的函数, 是挂起函数
 * @return  Response<T> : 封装 block() 结果
 * */
suspend fun <T> request(block: suspend () -> T): Response<T> {
    var result: Response<T> = EmptyResponse()
    runCatching {
        block()
    }.onSuccess {
        result = Response.create(it)
    }.onFailure {
        result = Response.create(it)
    }
    return result
}