本文整理匯總了TypeScript中rxjs/operators/tap.tap函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript tap函數的具體用法?TypeScript tap怎麽用?TypeScript tap使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了tap函數的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: run
function run() {
if (!command) {
console.log('Welcome to frint-cli!');
console.log('\n');
console.log('These commands are currently available:\n');
return app.getApps$()
.pipe(
map(registeredApps => (
registeredApps
.map(registeredApp => registeredApp.name)
.sort()
)),
take(1),
map(registeredAppNames => (
registeredAppNames
.map(appName => ` - ${appName}`)
.join('\n')
)),
tap(names => console.log(names)),
tap(() => console.log('\n')),
tap(() => console.log('Type `frint help <commandName>` to learn more.'))
)
.subscribe();
}
const commandApp = app.getAppInstance(command);
if (!commandApp) {
return console.log('Command not available.');
}
return commandApp.get<FrintCliProvider>('execute')();
}
示例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: 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);
}
})
);
})
);
}
示例4: setWindowNameDomEffect
export function setWindowNameDomEffect(xs: Observable<string>, inputs: Inputs) {
return xs.pipe(
withLatestFrom(inputs.window$),
tap(([value, window]) => (window.name = value)),
ignoreElements()
);
}
示例5: styleSetDomEffect
export function styleSetDomEffect(xs: Observable<StyleSetPayload>) {
return xs.pipe(
tap(event => {
const { style, styleName, newValue } = event;
style[styleName] = newValue;
}),
map(e => Log.consoleInfo(`[StyleSet] ${e.styleName} = ${e.pathName}`))
);
}
示例6: mergeMap
, mergeMap(() => {
return timer(200).pipe(
tap(() => {
// if another reattachImportedRule call is in progress, abandon this one
if (rule.__LiveReload_newHref !== href) { return; }
parent.insertRule(newRule, index);
return parent.deleteRule(index+1);
})
)
})
示例7: switchMap
switchMap(([event, options, element, document]) => {
return timer(event[1] || 2000).pipe(
tap(() => {
element.style.display = "none";
if (element.parentNode) {
document.body.removeChild(element);
}
})
);
})
示例8: logout
@Effect({ dispatch: false })
logout(): Observable<Action> {
return this.actions$
.ofType(AuthActionTypes.LOGOUT)
.pipe(
tap(action =>
this.localStorageService.setItem(AUTH_KEY, { isAuthenticated: false })
)
);
}
示例9: persistThemeSettings
@Effect({ dispatch: false })
persistThemeSettings(): Observable<Action> {
return this.actions$.ofType(SETTINGS_CHANGE_THEME).pipe(
tap(action =>
this.localStorageService.setItem(SETTINGS_KEY, {
theme: action.payload
})
)
);
}