2016-09-07 39 views

回答

2

如果您有可观察的可观察值流,则切换会将该嵌套可观察值平滑为单个可观察值流。它将为您提供来自外部流最近产生的内部流的值。

这可能是一个例子更容易。假设你有一个文本框来控制你从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(); 

我希望这有助于。