Browse Source

更新文档

drake 4 years ago
parent
commit
de1faae02e

+ 1 - 1
docs/fastest.md

@@ -1,4 +1,4 @@
-Net支持多个接口请求并发, 仅返回最快的请求结果, 剩余请求将被自动取消, 同样可以用于筛选掉无法请求的域名
+Net支持多个接口请求并发, 仅返回最快的请求结果, 剩余请求将被自动取消, 同样可以用于筛选掉无法响应的域名
 <br>
 
 !!! note

+ 0 - 0
docs/log.md


+ 41 - 0
docs/nested-scope.md

@@ -0,0 +1,41 @@
+有时候可能面临嵌套的`scope*`函数或者作用域内有子作用域情况, 这个时候的生命周期是如何
+
+
+## 嵌套Scope
+
+```kotlin hl_lines="5"
+scopeNet {
+    val task = Post<String>("api0").await()
+
+    scopeNet {
+        val task = Post<String>("api0").await() // 此时发生请求错误
+    }.catch {
+        // A
+    }
+}.catch {
+    // B
+}
+```
+
+- 以下嵌套作用域错误将会仅发生在`A`处, 并被捕获, 同时不影响外部`scopeNet`的请求和异常捕获
+- 两个`scopeNet`的异常抛出和捕获互不影响
+- `scopeNet/scopeDialog/scope`等函数同理
+
+## 子作用域
+
+```kotlin hl_lines="7 10"
+scopeNet {
+    val await = Post<String>("api").await()
+
+    launch {
+       val task = Post<String>("api0").await()  // 此时发生请求错误
+    }.invokeOnCompletion {
+        // A
+    }
+}.catch {
+     // B
+}
+```
+
+- 这种情况 先执行`A`然后执行`B`, 并且都能捕获异常.
+- 同时`scopeNet`发生错误也会导致`launch`内的请求被取消, `launch`发生错误也会导致`scopeNet`发生错误

+ 6 - 1
docs/read-cache.md

@@ -29,7 +29,12 @@ initNet("http://182.92.97.186/") {
     ```
 
 预读模式本质上就是创建一个`preview`附加作用域, 里面的所有异常崩溃都会被静默捕捉(算作缓存失败), 会优先于`scope*`执行, 然后再执行scope本身,
-而且一旦缓存读取成功(`preview`内部无异常)即使网络请求失败也可以不提醒用户任何错误信息(可配置), 其实可以应用于其他场景
+而且一旦缓存读取成功(`preview`内部无异常)即使网络请求失败也可以不提醒用户任何错误信息(可配置)
+
+<br>
+
+!!! note
+    `preview`并没有说只能用在网络缓存上, 也可以用于其他的处理场景
 
 <br>
 

+ 2 - 1
mkdocs.yml

@@ -52,7 +52,8 @@ nav:
   - 下载文件: download-file.md
   - 下载图片: download-image.md
   - 读取缓存: read-cache.md
-  - 最快选择: fastest.md
+  - 嵌套作用域: nested-scope.md
+  - 最快请求结果: fastest.md
   - 取消请求: cancel.md
   - 轮循器: interval.md
   - 2.x文档: api/net/index.md

+ 3 - 6
sample/src/main/java/com/drake/net/sample/ui/fragment/RequestMethodFragment.kt

@@ -30,16 +30,13 @@ import kotlinx.android.synthetic.main.fragment_async_task.*
 class RequestMethodFragment : Fragment() {
 
     override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View? {
+            inflater: LayoutInflater, container: ViewGroup?,
+            savedInstanceState: Bundle?
+                             ): View? {
         setHasOptionsMenu(true)
         return inflater.inflate(R.layout.fragment_request_method, container, false)
     }
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-    }
 
     private fun GET() {
         scopeNetLife {

+ 1 - 1
sample/src/main/res/navigation/nav_main.xml

@@ -18,7 +18,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/main"
-    app:startDestination="@id/fastest">
+    app:startDestination="@id/request_method">
 
     <fragment
         android:id="@+id/async_task"