Как построить Observable из динамически создаваемых и разрушаемых источников? - PullRequest
0 голосов
/ 29 сентября 2018

Мой вопрос похож на этот RXJS: Одиночная наблюдаемая из динамически создаваемых наблюдаемых (ответа там нет).

Я хочу непрерывно анализировать некоторые страницы.Существует главная страница, где я могу получить список ссылок страниц для анализа.Этот список ссылок со временем меняется.Затем я перехожу по ссылкам и непрерывно анализирую страницы, пока их ссылки не исчезают с главной страницы, и не начинаю анализировать новые страницы по мере их появления на главной странице.

На данный момент мои настройки следующие.У меня есть класс, который с помощью URL-адреса может вернуть Observable непрерывно излучаемых элементов (анализирует одну ссылку с главной страницы).Это прекрасно работает.Тем не менее, я хочу иметь «мастер» класс, который сможет возвращать Observable из тех же предметов, но взятых с нескольких страниц.Проблема, с которой я сталкиваюсь, заключается в том, что список страниц меняется (как и список базовых Observable s, и я не могу просто использовать Observable.merge.

TL; DR : У меня есть несколько Observable с, которые я хочу объединить, но этот список Observable с динамически меняется, и я не знаю, как с этим справиться.

Как мне подойти к этому?

1 Ответ

0 голосов
/ 02 октября 2018

Если у вас уже есть Observable «главной» страницы и функция для извлечения элементов на основе этих данных.Вы можете использовать оператор switchMap для «переключения» этого динамически изменяющегося списка, например:

getMainPages().pipe(
  switchMap(main => getItemsFromMultiplePages(main))
)

где:

  • getMainPages() - возврат Наблюдаемый изданные главной страницы
  • getItemsFromMultiplePages(main) - возвращает наблюдаемые элементы, созданные путем объединения (возможно, с использованием merge) данных с нескольких страниц
...