gpt4 book ai didi

ios - 失败后如何重新启动dataTaskPublisher?

转载 作者:行者123 更新时间:2023-12-01 19:30:18 25 4
gpt4 key购买 nike

我有一些代码,当计数值更改时向网络发出请求

@Published var count: Float = 0

init(data: SomeData) {
///
$count
.debounce(for: .seconds(1), scheduler: RunLoop.main)
.filter { return $0 != self.product.quantity }
.setFailureType(to: APIProviderError.self)
.flatMap { val -> AnyPublisher<Cart, APIProviderError> in
return self.cartService.update(item: params)
}
}
.sink { result in
print(result)
} receiveValue: { cart in
print(cart)
}
.store(in: &cancellable)
///
}
cartService.update返回dataTaskPublisher。
当返回任何错误时,将不再调用平面图。
我可以重新启动吗?

最佳答案

我可以重新启动吗?

否。在Combine框架中,当管道发生故障时,将取消整个管道并完成发布者。
但是,在flatMap内部,您可以构建一个执行catch的微型管道,并防止故障逃逸到外部管道中。然后,如果需要,您将能够继续使用外部管道。
另外,如果您认为这样做会有所帮助,则可以使用retry防止错误传播,该错误将再次尝试提取。数据任务发布者仅获取一次,除非retry使其再次尝试。

关于ios - 失败后如何重新启动dataTaskPublisher?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63236727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com