2016-09-07 56 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(); 

我希望這有助於。