с параметром параллелизма.

отаю над чем-то, что записывает данные, поступающие из очереди. Было достаточно легко обработать очередь в Observable, чтобы в моем коде было несколько конечных точек, получающих информацию в очереди.

Кроме того, я могу быть уверен, что информация поступает в порядке. Этот бит работает хорошо, так как Обсерватории гарантируют это.Ноодин хитрый момент в том, что я не хочу, чтобы наблюдатель был уведомлен о следующей вещи, пока он не завершит обработку предыдущей вещи. Но обработка, выполняемая Observer, является асинхронной.

В качестве более конкретного примера, который, вероятно, достаточно прост для подражания. Представьте, что моя очередь содержит URL. Я выставляю их как Observable в своем коде. Я подписываю Обозревателя, чья работа состоит в том, чтобы извлекать URL-адреса и записывать содержимое на диск (это надуманный пример, поэтому не стоит спорить с этими особенностями). Важным моментом является то, что выборка и сохранение являются асинхронными. Моя проблема в том, что я не хочу, чтобы наблюдателю давали «следующий» URL-адрес из наблюдаемой, пока они не завершат предыдущую обработку.

Но призыв кnext на интерфейс Observer возвращаетvoid, Поэтому у Обозревателя нет возможности связаться со мной, который фактически выполнил асинхронную задачу.

Какие-либо предложения? Я подозреваю, что, возможно, существует какой-то оператор, который мог бы быть закодирован, который бы в основном удерживал будущие значения (помещать их в очередь в памяти?), Пока он каким-то образом не знал, что Наблюдатель готов к этому. Но я надеялся, что нечто подобное уже существовало по какой-то установленной схеме.

Ответы на вопрос(3)

Ваш ответ на вопрос