最佳答案
如果您有可观察的可观察值流,则switch会将嵌套的observable展平为单个可观察值流.它将为您提供外部流生成的最新内部流的值.
@H_403_1@举个例子可能更容易.假设您有一个文本框,用于控制从AJAX查询中收到的数据.让我们将此文本框称为页码.您的目标是显示用户在文本框中键入的页面的AJAX查询结果.您可以使用switch构建该数据的可观察流:
@H_403_1@
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();
@H_403_1@我希望这有帮助.