나는 다음과 같은 시도없이 성공했다. -subscribeNext:
을 사용하는 동등 물이 예상대로 작동합니다.중첩 가입없이 명령 실행 신호의 완료를 구독하려면 어떻게해야합니까?
// A
[[_viewModel.loginCommand.executionSignals flatten] subscribeCompleted:^{
NSLog(@"A");
}];
다음과 같이
내 유일한 작업 구현은 다음과 같습니다
// B
[_viewModel.loginCommand.executionSignals subscribeNext:^(RACSignal *loginSignal) {
[loginSignal subscribeCompleted:^{
NSLog(@"B");
}];
}];
왜 -flatten
"A"의 작업, 어떻게 내가 중첩 구독을 사용하지 "B"를 다시 작성할 수 있습니까?
이것은 꽤 일반적인 작업입니다 - 작업의 성공 확인을 보여줍니다. 예를 들어 메시지를 게시하고 싶습니다. 작업이 실패했거나 완료되었음을 알리는 메시지가 표시됩니다. 정말 더 명확하게 할 수있는 방법이 없습니까? 내 말은,이 접근법은 여전히 중첩 된 executionSignal을 구독하는 것입니다. 명령에 둘 이상의 실행 신호가있는 경우 (예 :?) – Slabko
'RACCommand'의'executionSignals'는 완료 이벤트를 직접 노출하지 않습니다.'materialize'를 사용하고 싶지 않다면, 또 다른 옵션은 "성공적인 완료"를 의미하는 의미있는 값을 사용하는 것입니다. 값을 보내지 않는 신호의 경우 완료를 나타내는 값을 보내고 무시하면됩니다. 네, 또 다른 옵션은'doCompleted :'연산자를 중첩 가입에 대한 대안으로 사용하는 것입니다. –
기본적으로 RACCommand는 작업이 실패하거나 성공한 경우 추적하지 않습니다. 작업이 실행 중일 때와 실행 중이 아닌 경우에만 추적합니다. 내가 맞습니까? – Slabko