【发布时间】:2021-02-17 12:23:32
【问题描述】:
我正在尝试使用 combine 制作一个 try-catch 块,以便我可以执行某些函数并再次重新执行 main 块。我正在做这样的事情-
return urlSession.dataTaskPublisher(for: request)
.tryMap(verifyAPIResponse)
.tryCatch { (error) -> AnyPublisher<(data: Data, response: URLResponse), URLError> in
self.apiCallOne()
.tryMap(\.apiResponse)
.tryMap({ (response) in
})
return self.urlSession.dataTaskPublisher(for: request) //<<- DOES this execute after refreshToken or executes in parallel?
}
.tryMap(parseJson)
.receive(on: RunLoop.main)
.eraseToAnyPublisher()
所以我主要关心的是 -
- apiCallOne 是否在返回 self.urlSession.dataTaskPublisher(for: request) 或之前发生
- API 调用 apiCallOne 是否在后台执行并立即返回 self.urlSession.dataTaskPublisher(for: request)?如果是这样,我可以在 apiCallOne 完成后返回吗?
任何指针/帮助都会很棒。
【问题讨论】: