Wrapping the request -> result cycle into own adapter(請求->結(jié)果周期包裝成自己的適配器)--Moya文檔

Wrapping the request -> result cycle into own adapter(請求- >結(jié)果周期包裝成自己的適配器)

看向一個真實世界的例子,你可能想把請求- >結(jié)果周期包裝成自己的網(wǎng)絡(luò)適配器,然后它變得更加容易響應(yīng)成功、錯誤、或者網(wǎng)絡(luò)失敗后的重連等等

struct Network {
    static let provider = MoyaProvider(endpointClosure: endpointClosure)

    static func request(
        target: MyService,
        success successCallback: (JSON) -> Void,
        error errorCallback: (statusCode: Int) -> Void,
        failure failureCallback: (MoyaError) -> Void
    ) {
        provider.request(target) { result in
            switch result {
            case let .success(response):
                do {
                    try response.filterSuccessfulStatusCodes()
                    let json = try JSON(response.mapJSON())
                    successCallback(json)
                }
                catch error {
                    errorCallback(error)
                }
            case let .failure(error):
                if target.shouldRetry {
                    retryWhenReachable(target, successCallback, errorCallback, failureCallback)
                }
                else {
                    failureCallback(error)
                }
            }
        }
    }
}

// usage:
Network.request(.zen, success: { zen in
    showMessage(zen)
}, error: { err in
    showError(err)
}, failure: { _ in
    // oh well, no network apparently
})

總結(jié) 這小節(jié)的核心:

  1. 把Moya中的自己的請求-響應(yīng)過程自己在封裝一下,方便使用(只響應(yīng)結(jié)果)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,932評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • 我的筆記本電腦的工作電壓是20V,而我國的家庭用電是220V,如何讓20V的筆記本電腦能夠在220V的電壓下工作?...
    justCode_閱讀 1,501評論 0 5
  • 我的筆記本電腦的工作電壓是20V,而我國的家庭用電是220V,如何讓20V的筆記本電腦能夠在220V的電壓下工作?...
    justCode_閱讀 870評論 0 1
  • "每個孩子都可以成為一個冠軍, 我們永遠(yuǎn)不會放棄他們, 我們懂得連接的強大力量, 堅信他們可以成為那個最好的自己。...
    艷濱閱讀 650評論 3 2

友情鏈接更多精彩內(nèi)容