首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VIPER架构中,如何在一个屏幕中触发网络请求并最终获得结果?

在VIPER架构中,如何在一个屏幕中触发网络请求并最终获得结果?
EN

Stack Overflow用户
提问于 2018-04-05 11:35:59
回答 1查看 51关注 0票数 1

我需要调用一个发出一些网络请求和数据处理的‘函数’,这可能需要一些时间。

所以,几乎只要我的应用程序一启动,我就会调用我的函数,以便在用户到达需要的屏幕时准备好响应。

您将在何处/如何触发网络请求,以及如何通知最终演示者您已收到响应或未收到响应?

EN

回答 1

Stack Overflow用户

发布于 2021-04-03 08:35:34

正如在https://theswiftdev.com/the-ultimate-viper-architecture-tutorial中提到的

  • 网络请求和异步响应将在VIPER的交互区域中,因为那里是所有传感器、数据库和网络操作所在的区域,其中当然包括从数据包或格式化的字节流(可能只是OP中可能称为“数据处理”的一小部分)的字段中提取的所有内容。
  • 检索到的数据及其结构将在VIPER的实体区域中。
  • OP中“数据处理”主要部分的“业务逻辑”将在VIPER的演示者区域中,操作实体区域中的上述实体。

似乎有一些刺激存在于某个地方(例如,在VIPER的视图区域中的UI中),以触发最终在交互器区域中的网络请求的动作。如果该刺激源自UI,则自然会有从视图到展示者再到交互者的毒蛇区域间同步消息流,以便发起异步网络请求。异步(以及关于传出和传入网络流量的所有其他内容)将在interactor zone的内部事务内部进行处理。

这个答案首先提到了毒蛇,但没有故意提到Swift或iOS,因为毒蛇架构区&它们之间的消息传递不应该知道应用程序的这个构建是针对哪个平台的。

  1. 是一款iOS应用程序,它会在构建时切换到iOS-/SwiftUI为中心的视图区域。MacOS应用程序将在构建时在以Cocoa/SwiftUI为中心的视图区域中交换。Android应用程序将在构建时交换JNIing-to-Kotlin/Java视图区域。UWP应用程序将在build-time.
  2. Likewise,的C++/WinRT或C#/WinRT视图区域交换,而iOS或MacOS应用程序将在构建时交换到以WebKit框架为中心的交互器区域。Android应用程序将在构建时在以WebView为中心的交互区域中进行交换。UWP应用程序将在构建时在以Windows.Web.Http为中心的交互器区域中进行交换。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49663742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档