跳转至

取消请求

部分场景开发者想手动取消请求

downloadScope = scopeNetLife {
    // 下载文件
    val file = Get<File>(Api.DOWNLOAD).await()
}

downloadScope.cancel() // 取消下载

任意位置取消

发起请求时指定Id

scopeNetLife {
    tv.text = Get<String>(Api.DOWNLOAD){
        setId("请求用户信息")
    }.await()
}
Net.cancelId("请求用户信息")
Net.cancelGroup("请求分组名称")

Group和Id区别

函数 描述
id 请求唯一Id, 实际上重复也行, 但是取消请求时遍历到指定Id就会结束遍历
group 允许多个请求使用相同group, 在取消请求时会遍历所有分组的请求

作用域结束请求自动取消

scopeXX()作用域中发起请求时会默认使用当前协程错误处理器作为Group

setGroup(coroutineContext[CoroutineExceptionHandler])
在作用域结束时 会cancelGroup, 所以如果你手动指定分组会导致无法自动取消