我有一个数组,该数组根据用户输入而变化。例如。用户单击选择按钮,发生这种情况时,我将重写数组。数组满足要求后,我就开始执行提取请求,但是我想减少请求量,因为当用户实际上停止选择字段时,用户可能会快速选择许多字段,并且只需要一个请求。因此,我正在使用switchMap,但无法正常工作。
const source$ = from(selected);
source$.pipe(
debounceTime(1000),
switchMap(() => {
if(selected.length > 1) {
const formatted = selected.map(s => s.id);
fetch(`${url}/getParams`, {
method: 'POST',
body: JSON.stringify({ formatted })
}).then(response => toCompare(response.json()));
}
})
);
请注意,选择的是我的数组,我没有执行push / pop,但我完全重写了数组,但使用了React Hooks中的useState。
答案 0 :(得分:0)
默认情况下,Rx.js直到至少有一个侦听器才运行流。
要添加侦听器,所有流上都有subscribe
方法
const source$ = from(selected);
source$.pipe(
debounceTime(1000),
)
.subscribe(() => {
if(selected.length > 1) {
const formatted = selected.map(s => s.id);
fetch(`${url}/getParams`, {
method: 'POST',
body: JSON.stringify({ formatted })
}).then(response => toCompare(response.json()));
}
});