Как вызвать on_error для пользовательского оператора rxcpp

Я создал простой оператор rx, который преобразует поток строк в поток jsons, и он отлично работает. Тем не менее, я хотел бы иметь возможность вызывать пользовательское исключение, и я не уверен, как вызвать on_error способ подписки

Оператор называется convertStringToJson и рабочий образец можно найти здесь: https://github.com/cipriancaba/rxcpp-examples/blob/master/src/SimpleOperators.cpp

function<observable<json>(observable<string>)> SimpleOperators::convertFromStringToJson() {
return [](observable<string> $str) {
return $str |
Rx::map([](const string s) {
return json::parse(s);
});
};
}

2

Решение

rxcpp будет работать, если вы используете try / catch для перевода исключения.

Однако предполагаемый шаблон должен использовать on_error_resume_next () для преобразования исключения.

Это код:

function<observable<json>(observable<string>)> SimpleOperators::convertFromStringToJson() {
return [](observable<string> $str) {
return $str |
Rx::map([](const string& s) {
return json::parse(s);
}) |
Rx::on_error_resume_next([](std::exception_ptr){
return Rx::error<json>(runtime_error("custom exception"));
});
};
}

Я открыл запрос на github с этим кодом.

https://github.com/cipriancaba/rxcpp-examples/pull/1

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]