У меня есть код, в котором для каждого из идентификаторов я делаю запрос AJAX и обработки их результаты приходят Вот простая копия моего фактического кода и jsfiddle:Продолжить подписку после ошибки
var ids = [1,2,3,4,5,6];
var ids$ = (id) => {
return Observable.of(id);
};
var loadIds$ = (id) => {
if(id == 4) return xhr('/echo/jsoneee/', {id: id});
return xhr('/echo/json/', {id: id});
};
Observable.from(ids)
.concatMap(id => Observable.forkJoin(ids$(id), loadIds$(id)))
.catch((err, caught) => {
//get the id for which loadIds failed
//send the id to subscribe() and continue the subscription
return Observable.empty();
})
.subscribe(result => console.log(result))
Но теперь мне нужно изменить код, чтобы при возникновении ошибки мне пришлось получить id
, для которого не удалось выполнить запрос ajax, а затем просто продолжить подписку, как будто ничего не произошло. Я еще не смог этого сделать. Помощь очень ценится.
Что это должен делать '.concatMap (ID => Observable.forkJoin (ID $ (ID), loadIds $ (идентификатор))) '? – martin
@martin Это всего лишь макет, чтобы сделать вещи проще. Но это может быть 'forkJoin' или' zip', но цель состоит в том, что 'subscribe()' должен иметь объект 'id' и ответ для этого' id' ajax-запроса как единый элемент вместе, потому что я делаю другую обработку внутри подписаться, и мне нужны обе данные. – lbrahim