Я читаю изображения из живого потока и периодически выбираю пакет. Затем я отправляю их на сервер для проверки. Ошибка HTTP будет выдана, если какая-либо проверка не пройдена. Если это произойдет, я хочу получить новую партию изображений.
this.input.getImages()
.throttleTime(500)
.switchMap(image =>
new Observable<{}>(observer => {
// Some operation
})
.map(i => ({ image, i }))
).filter(({ i }) => {
// some filtering
})
.map(({ image }) => image)
.take(6)
.bufferCount(6)
.map(images => // switch map??
Observable.fromPromise(this.server.validate(images))
)
.retry(2) // This only retrys the request, I want it to retry the whole chain (to get valid images)
.subscribe(images => {
console.log('All done')
},
err => {console.log(err)}
)
Проблема, с которой я сталкиваюсь, заключается в том, что повторяется только HTTP-запрос, поскольку это новый наблюдаемый объект. Должен ли быть какой-то способ инкапсулировать начало цепочки в один Observable?