小编Phi*_* K.的帖子

链网络在组合中顺序调用

我的目标是使用合并来链接多个(此时为两个)网络调用,如果第一次调用失败则中断链接。

我有两种对象类型:CategoryEntitySubcategoryEntity。每个CategoryEntity都有一个称为 的属性subcategoriesIDS。第一次调用时,我需要获取所有子类别,第二次调用时,我将获取所有类别,然后创建一个CategoryEntityViewModel. CategoryEntityViewModel包含一个SubcategoryEntityViewModel基于 的CategoryEntity数组subcategoriesIDS

只是为了更清楚:

  1. 获取子类别
  2. 获取类别
  3. 为每个获取的子类别创建一个SubcategoryEntityViewModel并存储在某处
  4. CategoryEntityViewModel是为每个获取的类别创建的。CategoryEntity该对象将使用一个对象和一个数组进行初始化,并在和存储的数组SubcategoryEntityViewModel之间找到过滤匹配的 IDsubcategoriesIDSSubcategoryEntityViewModel

我现在的代码是:

class CategoriesService: Service, ErrorManager {
    static let shared = CategoriesService()
    internal let decoder = JSONDecoder()
    
    @Published var error: ServerError = .none
    
    private init() {
        decoder.dateDecodingStrategyFormatters = [ DateFormatter.yearMonthDay ]
    }
    
    func getAllCategories() -> AnyPublisher<[CategoryEntity], ServerError> {
        let request = self.createRequest(withUrlString: "\(AppSettings.api_endpoint)/categories/all", forMethod: …
Run Code Online (Sandbox Code Playgroud)

swift combine

5
推荐指数
1
解决办法
5309
查看次数

标签 统计

combine ×1

swift ×1