2
处理请求/响应流,我需要在rxcpp实现相机采样系统..我想象这是传递一个requestStream为PARAM和接收responseStream如何rxcpp
每次requestSample的调用方式,创建一个新的相机会话,当on_complete()被调用的requestStream,相机会话终止
observable<ImageSample> requestSampleStream(observable<ImageRequest> requestStream$) {
auto response$ = rxcpp::observable<>::create<ImageSample>(
[&](rxcpp::subscriber<ImageSample> s){
auto request_next = [&](ImageRequest imageRequest) {
cout << "image request next" << endl;
SampleImage vsi;
s.on_next(vsi);
};
auto request_completed = [&] {
cout << "no more samples needed.. close camera" << endl;
s.on_completed();
};
auto request_error = [&](std::exception_ptr e) {
try { rethrow_exception(e); }
catch (const exception &ex) {
cerr << "error happened on request stream.. close the camera and send error on return stream" << endl << ex.what() << endl;
}
s.on_error(e);
};
requestStream$.subscribe(request_next,
request_error,
request_completed
);
});
return response$;
}
这里的问题是,由requestStream$.subscribe(request_next..
被调用的时候,我得到一个EXC_BAD_ACCESS
Spot on ..什么是更多rxcpp-ish的方式来做到这一点?通过地图+点击? – Ciprian
是的,使用现有的地图算法优于使用create来重现地图。 –
我唯一的问题是地图的结果是异步的,所以地图无法同步返回。是否有解决方法? – Ciprian