0
이ReactiveSwift : n 배까지 다시 시도, 다음 (이 모든 시도를 실패 할 경우) 일부 콜백을 실행 한 후 n 번을 다시 시도 할 수있는 기본 방법이 있나요
func test() -> SignalProducer<String, Error> {
return SignalProducer<String, Error> { observer, _ in
...
}
}
test()
.on(value: { s in
print(s)
})
.retry(upTo: 2)
.start()
}
아래의 코드를 고려 몇 가지 코드를 실행 ?
물론 로컬 카운터를 도입하고 .on(failed: _)
의 실패 수를 계산 한 다음 카운터가 n + 1과 같을 경우 무언가를 수행 할 수는 있지만 다른 방법이 있습니까?
이 여기서 중요한 것은 순서입니다는'전에 .retry' 부가' .on 처리기는 마지막 오류 만 전달합니다 (이 경우 원하는 효과). 나는 어떻게 든 그것을 놓쳤다. – Buddy
그래, 각 연산자는 실제로 로직이나 트랜스 포메이션으로 이전 신호를 감싸는 새로운 신호/생성자를 생성합니다. 그래서 원래의 코드에서'재 시도'는'on' 부작용을 포함하여 그 앞에 오는 모든 코드에 정의 된대로 프로듀서를 다시 시도 할 것입니다. – jjoelson