当前位置: 首页 > news >正文

网站建设项目实施方案怎么查看网站是用什么编程语言开发的

网站建设项目实施方案,怎么查看网站是用什么编程语言开发的,全网优化哪家好,安溪学校网站建设最近项目中统一采用Kotlin的Flow来重构了网络请求相关代码。 目前的场景是#xff0c;接口在请求的时候需要一个accessToken值#xff0c;因为此值会过期或者不存在#xff0c;需要刷新#xff0c;因此最终方案是在使用Flow请求的时候先获取accessToken值然后再进行接口请求… 最近项目中统一采用Kotlin的Flow来重构了网络请求相关代码。 目前的场景是接口在请求的时候需要一个accessToken值因为此值会过期或者不存在需要刷新因此最终方案是在使用Flow请求的时候先获取accessToken值然后再进行接口请求而获取accessToken值的方法已经封装成了一个Flow并且做了缓存因此最后需要使用flatMapConcat操作符来连接真正需要的接口请求如果获取的accessToken无效又需要回头重新执行逻辑如下 判断本地是否存在accessToken并且是否过期不存在或者已过期则请求accessToken请求对应的接口如果返回结果中accessToken无效则重试 Flow提供了retry和retryWhen两种扩展方法来做重试操作 retry源码 public fun T FlowT.retry(retries: Long Long.MAX_VALUE,predicate: suspend (cause: Throwable) - Boolean { true } ): FlowT {require(retries 0) { Expected positive amount of retries, but had $retries }return retryWhen { cause, attempt - attempt retries predicate(cause) } }retryWhen源码 public fun T FlowT.retryWhen(predicate: suspend FlowCollectorT.(cause: Throwable, attempt: Long) - Boolean): FlowT flow {var attempt 0Lvar shallRetry: Booleando {shallRetry falseval cause catchImpl(this)if (cause ! null) {if (predicate(cause, attempt)) {shallRetry trueattempt} else {throw cause}}} while (shallRetry)}但是retry和retryWhen只能通过异常来判断如果是通过返回结果来判断就需要借助外部变量来处理了因此基于源码扩展了方法retry可以接收请求结果从而通过请求结果来判断是否需要重试。 fun T FlowT.retry(retries: Long Long.MAX_VALUE, predicate: suspend (result: T) - Boolean { true } ): FlowT {require(retries 0) { Expected positive amount of retries, but had $retries }return flow {var attempt 0Lvar shallRetry: Booleando {shallRetry falsetry {collect {if (attempt retries predicate(it)) {shallRetry trueattempt} else {this.emit(it)}}} catch (e: Throwable) {throw e}} while (shallRetry)} }最后的请求示例代码如下 MainScope().launch {getToken().flatMapConcat {if (it is Result.Success) {sendMobileCode()} else {emptyFlow()}}.retry(1) {returnretry (it is Result.Failure) (it.code ErrorStatus.ACCESS_TOKEN_ERROR)}.flowOn(Dispatchers.IO).onStart {callback?.onStart()}.catch {callback?.onError(it)}.onCompletion {callback?.onComplete(it)}.collectLatest { result -}}感谢大家的支持如有错误请指正如需转载请标明原文出处
http://www.sczhlp.com/news/183713/

相关文章:

  • 网站开发飞沐印度外贸网站有哪些
  • 网站优化图片链接怎么做乐陵网站制作
  • 建立网站教学的北京建设大厦
  • 网站建设教程出售用苏州久远网络使用flask做前后端分离的网站
  • 西红门网站建设公司给你一个网站怎么做的
  • 手机怎么防止网站自动跳转阳泉住房和城乡建设厅网站
  • 芜湖新芜湖网站建设wordpress php函数大全
  • 商城网站建设系统企业网站建立网络虚拟社区时对于企业
  • 最方便建立网站网络营销策划公司
  • 企业网站建设可行性分析网站网页设计专业公司
  • 水墨风格 网站英文外贸商城网站设计
  • 河南免费网站建设公司网页源代码提取视频
  • 网站开发项目实战视频佛山服务类网站建设
  • 无限容量网站东莞网站建设信科
  • 网站备案收费标准制作个人网站论文
  • 重生主角做视频网站的小说管理咨询公司需要的能力
  • 辽阳市建设行业培训中心网站生鲜网站建设的总体目标
  • 网络项目资源网站卖建材的网站
  • 网站开发最流行的语言做网站的意义
  • wordpress云采集宁波seo推广怎么做
  • 郴州新网交友信息无锡网站推广优化公司哪家好
  • 建网站不花钱免费建站网站开发与设计实训心得两千字
  • 丰台网站制作公司专业直播网站开发
  • ipsw 是谁做的网站手机记事本做网站
  • 网站建设图片居中代码中山营销型网站建设
  • 做设计在哪个网站上找高清图片大全罗湖附近网站建设公司
  • asp网站 上传空间网站建设平台哪个公司好
  • 安平营销型网站建设费用seo推广和百度推广的区别
  • 镇江网站推广排名wordpress js load
  • wordpress免费网站模板下载地址html5单页面网站建设