У меня есть простой вопрос, но я не могу найти на него хорошее решение.
У меня есть сигнал, который отправляет строки, и map
после него. map
преобразует строки в JSON.
Может случиться так, что строка имеет неправильный формат, и анализатор JSON не сможет выполнить синтаксический анализ с ошибкой.
[stringGeneratorSignal map:^(NSString *bussinessObjectString){
NSError *error;
BussinessObject *obj = [[BussinessObject alloc] initWithString:bussinessObjectString error:&error];
if (error) {
NSLog(@"%@", error);
}
return obj;
}];
Но поскольку я нахожусь внутри карты, я не могу вернуть сигнал об ошибке. Я хотел бы получить ошибку с ошибкой, предоставленной синтаксическим анализатором.
Несколько возможностей, которые я проанализировал, которые мне не нравятся:
- Верните ошибку на карту, а затем получите сигнал-оболочку, который фактически преобразует данные (или ошибку) в сигнал ошибки. Проблема в том, что я делегирую ту же задачу (преобразование данных в сигнал ошибки).
- Вместо этого используйте
flattenMap
. Это позволит вернуть сообщение об ошибке, но проблема в том, что это не то же поведение, что иmap
.
Каков наилучший подход для такого рода сценариев?
Спасибо!