合并:将闭包转换为发布者

问题描述 投票:0回答:1

如何转换:

func getResults(completion: ([Result]?, Error) -> Void)

进入

var resultsPublisher: AnyPublisher<[Result], Error>

只是一个我所看到的方案(此语法不存在:]:>

var resultsPublisher: AnyPublisher<[Result], Error> {
  let publisher: AnyPublisher = ... // init
  getResults { results, error in
     guard let results = results else {
       publisher.produce(error: error) // this syntax doesn't exist
       return
     }

     publisher.produce(results: results)  // this syntax doesn't exist

  }

  return publisher
}

我需要这样做,因为某些3d各方SDK使用completion closures,并且我想向它们编写扩展名以返回Publishers

如何转换:func getResults(completion:([[Result] ?, Error)-> Void)Into var resultsPublisher:AnyPublisher只是我所看到的一种方案(此语法不存在):...

ios closures swiftui combine publisher
1个回答
2
投票

答案是Future发布者,如matt所述:

© www.soinside.com 2019 - 2024. All rights reserved.