我的问题类似于这个RXJS: Single Observable from dynamically created Observables(在那里没有答案)。
我想连续解析一些页面。在主页上,我可以获取要解析的页面链接的列表。链接列表随时间变化。然后,我按照链接进行操作,并连续地分析页面,直到它们的链接从主页上消失,然后开始分析出现在主页上的新页面。
我现在的设置如下。我有一个给定URL的类,该类可以返回连续发射的项Observable
(解析来自主页的单个链接)。这很好。但是,我希望有一个“主”类,该类将能够返回来自多个页面的相同项的Observable。我的问题是页面列表正在更改(基础Observable
的列表也在更改,我不能只使用Observable.merge
。
TL; DR :
我有多个Observable
要合并。但是Observable
的列表正在动态变化,我不知道该如何处理。
我该如何处理?
答案 0 :(得分:1)
如果您已经具有“主页”的“可观察”页面,并且具有根据此数据获取项目的功能。您可以使用switchMap运算符来“切换”此动态更改的列表,例如:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form data-role="tocart-form" name="dynamicForm" id="dynamForm" action="http://www.example.com/dynamicbuy.php" method="POST">
<input type="hidden" name="product" value="4">
<input type="hidden" name="uenc" value="aHR0c">
<input name="form_key" type="hidden" value="eG4oiXalmxVw4hDx">
<input name="price" type="hidden" value="">
<input type="submit" name="submit" value="Buy" class="buttonBuy">
</form>
其中:
getMainPages().pipe(
switchMap(main => getItemsFromMultiplePages(main))
)
-返回可观察的主页数据getMainPages()
-返回通过组合(也许使用getItemsFromMultiplePages(main)
)来自多个页面的数据而创建的可观察项