gpt4 book ai didi

javascript - Rxjs 使用 Observable.from() 字符串并防止 Observable 被多次创建

转载 作者:太空宇宙 更新时间:2023-11-04 16:08:36 26 4
gpt4 key购买 nike

我有以下函数,我试图阻止每次调用该函数时创建 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
})
}

最佳答案

如果您想使用可观察对象,但不想从事件创建可观察对象,则可以创建一个 Subject 并可以从您的对象中调用其 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);
}

关于javascript - Rxjs 使用 Observable.from() 字符串并防止 Observable 被多次创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41686530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com