本文整理匯總了TypeScript中rxjs/operators/withLatestFrom.withLatestFrom函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript withLatestFrom函數的具體用法?TypeScript withLatestFrom怎麽用?TypeScript withLatestFrom使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了withLatestFrom函數的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: withLatestFrom
[Overlay.Info]: (xs: Observable<[LogNames, any]>, inputs: Inputs) => {
return xs.pipe(
withLatestFrom(
inputs.option$,
inputs.notifyElement$,
inputs.document$
),
/**
* Reject all notifications if notify: false
*/
filter(([, options]) => Boolean(options.notify)),
/**
* Set the HTML of the notify element
*/
tap(([event, options, element, document]) => {
element.innerHTML = event[0];
element.style.display = "block";
document.body.appendChild(element);
}),
/**
* Now remove the element after the given timeout
*/
switchMap(([event, options, element, document]) => {
return timer(event[1] || 2000).pipe(
tap(() => {
element.style.display = "none";
if (element.parentNode) {
document.body.removeChild(element);
}
})
);
})
);
}
示例2: simulateClickEffect
export function simulateClickEffect(
xs: Observable<ClickEvent.IncomingPayload>,
inputs: Inputs
) {
return xs.pipe(
withLatestFrom(inputs.window$, inputs.document$),
tap(([event, window, document]) => {
const elems = document.getElementsByTagName(event.tagName);
const match = elems[event.index];
if (match) {
if (document.createEvent) {
window.setTimeout(function() {
const evObj = document.createEvent("MouseEvents");
evObj.initEvent("click", true, true);
match.dispatchEvent(evObj);
}, 0);
} else {
window.setTimeout(function() {
if ((document as any).createEventObject) {
const evObj = (document as any).createEventObject();
evObj.cancelBubble = true;
(match as any).fireEvent("on" + "click", evObj);
}
}, 0);
}
}
}),
ignoreElements()
);
}
示例3: incomingBrowserReload
export function incomingBrowserReload(xs: Observable<any>, inputs: Inputs) {
return xs.pipe(
withLatestFrom(inputs.option$),
filter(([event, options]) => options.codeSync),
mergeMap(reloadBrowserSafe)
);
}
示例4: switchMap
switchMap(scroll => {
if (!scroll) return empty();
return fromEvent(document, "scroll", true).pipe(
map((e: Event) => e.target),
withLatestFrom(canSync$, elemMap$),
filter(([, canSync]) => Boolean(canSync)),
map(([target, canSync, elemMap]: [any, boolean, any[]]) => {
if (target === document) {
return ScrollEvent.outgoing(
getScrollPosition(window, document),
"document",
0
);
}
const elems = document.getElementsByTagName(target.tagName);
const index = Array.prototype.indexOf.call(
elems || [],
target
);
return ScrollEvent.outgoing(
getScrollPositionForElement(target),
target.tagName,
index,
elemMap.indexOf(target)
);
})
);
})
示例5: setWindowNameDomEffect
export function setWindowNameDomEffect(xs: Observable<string>, inputs: Inputs) {
return xs.pipe(
withLatestFrom(inputs.window$),
tap(([value, window]) => (window.name = value)),
ignoreElements()
);
}
示例6: setScrollDomEffect
export function setScrollDomEffect(
xs: Observable<SetScrollPayload>,
inputs: Inputs
) {
return xs.pipe(
withLatestFrom(inputs.window$),
tap(([event, window]) => window.scrollTo(event.x, event.y)),
ignoreElements()
);
}
示例7: incomingBrowserLocation
export function incomingBrowserLocation(
xs: Observable<IncomingPayload>,
inputs: Inputs
) {
return xs.pipe(
withLatestFrom(inputs.option$.pipe(pluck("ghostMode", "location"))),
filter(([, canSyncLocation]) => canSyncLocation === true),
map(([event]) => browserSetLocation(event))
);
}
示例8: function
return function(xs, inputs) {
return xs.pipe(
withLatestFrom(
inputs.io$,
inputs.window$.pipe(pluck("location", "pathname"))
),
tap(([event, io, pathname]) =>
io.emit(name, { ...event, pathname })
),
ignoreElements()
);
};
示例9: incomingInputsToggles
export function incomingInputsToggles(
xs: Observable<IncomingPayload>,
inputs: Inputs
) {
return xs.pipe(
withLatestFrom(
inputs.option$.pipe(pluck("ghostMode", "forms", "toggles")),
inputs.window$.pipe(pluck("location", "pathname"))
),
filter(([, toggles]) => toggles === true),
map(([event]) => setElementToggleValue(event))
);
}