Почему возвращение из flattenMap пустым не вызывает подписку Completed
Я преобразую любое новое значение из сигнала с flattenMap, и я хочу остановить процесс на основе некоторого условия, не с ошибкой, а с завершенным состоянием. Упомянутый ниже код не позволяет это сделать. Это просто фильтрует некоторое значение. Как я могу завершить из flattenMap?
RACSignal* anySignal = //
[ [ anySignal
flattenMap: ^(id _)
{
return [ RACSignal empty ];
} ]
subscribeCompleted:
^{
NSLog(@"Not Called");
}];
1 ответ
Решение
-flattenMap:
не завершается, пока не завершены все соответствующие сигналы, то есть сигнал, который -flattenMap:
вызывается, а также сигналы, возвращаемые из блока карты. Чтобы завершить сигнал, проверьте -takeUntilBlock:
а также -takeWhileBlock:
,