3
有人能解释一下RxJS的开关功能吗?
我读了documentation,但无法配置它,它是如何工作的。RxJS开关功能
有人能解释一下RxJS的开关功能吗?
我读了documentation,但无法配置它,它是如何工作的。RxJS开关功能
如果您有可观察的可观察值流,则切换会将该嵌套可观察值平滑为单个可观察值流。它将为您提供来自外部流最近产生的内部流的值。
这可能是一个例子更容易。假设你有一个文本框来控制你从AJAX查询中收到的数据。让我们把这个文本框称为页码。您的目标是显示用户输入到文本框中的页面的AJAX查询结果。您可以使用switch
来构建数据可观察到的数据流:
function getPageData(pageNumber) {
// return the ajax query for this page
return $.ajax("/url?page=" + pageNumber));
}
var pageNumberValue = // some observable of the page number values coming from the text box
// this will be an observable of observables of the page data
var dataStreamOfStreams = pageNumberValue
.map(pageNumber => getPageData(pageNumber);
// everytime you change pages, this will "switch" to the new ajax call
// and return the results from that new call.
var dataStream = dataStreamOfStreams.switch();
我希望这有助于。