我正在使用Rx,我有两个使用相同运算符的点击流。 如何提取相同的部分并重复使用?
$(".scrollAnchor").click(function(e){
e.preventDefault();
anchorDestination = $(this).data("anchor-dest");
smoothScrollTo(anchorDestination);
});
function smoothScrollTo(element)
{
$("html, body").stop().animate({
scrollTop: $(element).offset().top
}, 1000);
}
我想提取这个:
let gender$ = Rx.Observable.fromEvent(gender, 'click').map(e => e.target).filter(t => t.nodeName === "LI").map(li => li.textContent.trim())
let type$ = Rx.Observable.fromEvent(type, 'click').map(e => e.target).filter(t => t.nodeName === "LI").map(li => li.textContent.trim())
let combine$ = Rx.Observable.combineLatest(
gender$,
type$
)
答案 0 :(得分:0)
const getTextFromLis = stream$ => stream$.map(e => e.target).filter(t => t.nodeName === "LI").map(li => li.textContent.trim());
let gender$ = getTextFromLis(Rx.Observable.fromEvent(gender, 'click'));
Rx的链接部分意味着调用.map()
或.filter()
会为您提供一个新流,您可以将其传递给函数或从函数返回。