本文整理汇总了TypeScript中rxjs/Rx.ReplaySubject.debounceTime方法的典型用法代码示例。如果您正苦于以下问题:TypeScript ReplaySubject.debounceTime方法的具体用法?TypeScript ReplaySubject.debounceTime怎么用?TypeScript ReplaySubject.debounceTime使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rxjs/Rx.ReplaySubject
的用法示例。
在下文中一共展示了ReplaySubject.debounceTime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: run
//.........这里部分代码省略.........
});
// validate documents
let lastValidated = '';
let lastDurationSelector: Rx.Subject<number> | undefined;
const disposeValidationStream = validationRequestStream
.do(doc => log(`A Validate ${doc.uri}:${doc.version}`))
.filter(shouldValidateDocument)
.do(doc => log(`B Validate ${doc.uri}:${doc.version}`))
.debounce(doc => {
if (doc.uri !== lastValidated && lastDurationSelector) {
lastDurationSelector.next(0);
}
lastDurationSelector = new Rx.Subject<number>();
Rx.Observable.timer(activeSettings.spellCheckDelayMs || defaultDebounce).subscribe(lastDurationSelector);
return lastDurationSelector;
})
.do(doc => log(`Validate: ${doc.uri}`))
.do(() => lastDurationSelector = undefined)
.subscribe(validateTextDocument);
// Clear the diagnostics for documents we do not want to validate
const disposableSkipValidationStream = validationRequestStream
.filter(doc => !shouldValidateDocument(doc))
.do(doc => log(`Skip Validate: ${doc.uri}`))
.subscribe(doc => {
connection.sendDiagnostics({ uri: doc.uri, diagnostics: [] });
});
const disposableTriggerUpdateConfigStream = triggerUpdateConfig
.do(() => log('Trigger Update Config'))
.do(() => activeSettingsNeedUpdating = true)
.debounceTime(100)
.subscribe(() => {
updateActiveSettings();
});
const disposableTriggerValidateAll = triggerValidateAll
.debounceTime(250)
.subscribe(() => {
log('Validate all documents');
documents.all().forEach(doc => validationRequestStream.next(doc));
});
validationFinishedStream.next({ uri: 'start', version: 0 });
function shouldValidateDocument(textDocument: TextDocument): boolean {
const { uri, languageId } = textDocument;
return !!getActiveSettings().enabled && isLanguageEnabled(languageId)
&& !isUriExcluded(uri);
}
function isLanguageEnabled(languageId: string) {
const { enabledLanguageIds = []} = getActiveSettings();
return enabledLanguageIds.indexOf(languageId) >= 0;
}
function isUriExcluded(uri: string) {
return fnFileExclusionTest(uri);
}
function getBaseSettings() {
return {...CSpell.mergeSettings(defaultSettings, getActiveSettings()), enabledLanguageIds: getActiveSettings().enabledLanguageIds};
}