[英]Rxjs using Observable.from() string and prevent Observable being created many times
我有以下函數,我試圖防止每次調用此函數時都創建 Observable。 基本上,每次用戶在搜索字段中鍵入內容時都會調用此函數。 我知道我可以從事件創建 Observable 為 Observable.fromEvent('button', click) 但這需要我對應用程序進行大量更改。 任何幫助表示贊賞。
function search(input) {
Observable.from([input])
.map(value => value)
.filter(value => value.length >3)
.debounceTime(300)
.distinctUntilChanged()
.switchMap(searchValue => {
//ajax call
return Promise.resolve(data)
})
.subscribe(data => {
//Do something with the data
})
}
如果您想使用 observables,但不想從事件中創建一個,您可以創建一個Subject
並可以從您的search
調用其next
方法:
import { Subject } from 'rxjs/Subject';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/switchMap';
var searchSubject = new Subject();
.filter(value => value.length > 3)
.debounceTime(300)
.distinctUntilChanged()
.switchMap(searchValue => {
// ajax call
return Promise.resolve(data)
})
.subscribe(data => {
// Do something with the data
});
function search(input) {
searchSubject.next(input);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.