本文整理汇总了TypeScript中lodash.debounce.default方法的典型用法代码示例。如果您正苦于以下问题:TypeScript debounce.default方法的具体用法?TypeScript debounce.default怎么用?TypeScript debounce.default使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lodash.debounce
的用法示例。
在下文中一共展示了debounce.default方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: render
disposables.push(server.onServerStart(path => {
localDisposables = [];
defaultStatus.text = '$(flame) Running';
defaultStatus.command = 'o.pickProjectAndStart';
defaultStatus.color = '';
render();
function updateProjectInfo() {
serverUtils.requestWorkspaceInformation(server).then(info => {
interface Project {
Path: string;
SourceFiles: string[];
}
let fileNames: vscode.DocumentFilter[] = [];
let label: string;
function addProjectFileNames(project: Project) {
fileNames.push({ pattern: project.Path });
if (project.SourceFiles) {
for (let sourceFile of project.SourceFiles) {
fileNames.push({ pattern: sourceFile });
}
}
}
function addDnxOrDotNetProjects(projects: Project[]) {
let count = 0;
for (let project of projects) {
count += 1;
addProjectFileNames(project);
}
if (!label) {
if (count === 1) {
label = basename(projects[0].Path); //workspace.getRelativePath(info.Dnx.Projects[0].Path);
}
else {
label = `${count} projects`;
}
}
}
// show sln-file if applicable
if (info.MsBuild && info.MsBuild.SolutionPath) {
label = basename(info.MsBuild.SolutionPath); //workspace.getRelativePath(info.MsBuild.SolutionPath);
fileNames.push({ pattern: info.MsBuild.SolutionPath });
for (let project of info.MsBuild.Projects) {
addProjectFileNames(project);
}
}
// show .NET Core projects if applicable
if (info.DotNet) {
addDnxOrDotNetProjects(info.DotNet.Projects);
}
// set project info
projectStatus = new Status(fileNames);
projectStatus.text = '$(flame) ' + label;
projectStatus.command = 'o.pickProjectAndStart';
// default is to change project
defaultStatus.text = '$(flame) Switch projects';
defaultStatus.command = 'o.pickProjectAndStart';
render();
});
}
// Don't allow the same request to slam the server within a "short" window
let debouncedUpdateProjectInfo = debounce(updateProjectInfo, 1500, { leading: true });
localDisposables.push(server.onProjectAdded(debouncedUpdateProjectInfo));
localDisposables.push(server.onProjectChange(debouncedUpdateProjectInfo));
localDisposables.push(server.onProjectRemoved(debouncedUpdateProjectInfo));
}));
示例2: openBookmarkTree
return React.useMemo(() => {
const _toggleBookmarkTree = (bookmarkInfo: BookmarkInfo) => {
if (bookmarkInfo.type === BOOKMARK_TYPES.FOLDER && bookmarkInfo.id !== activeKey) {
openBookmarkTree(bookmarkInfo.id, treeInfo.parent.id)
} else {
closeNextTrees()
}
}
const toggleBookmarkTree = debounce(_toggleBookmarkTree, 300)
return {
handleRowMouseEnter: (bookmarkInfo: BookmarkInfo) => () => {
if (!options[OPTIONS.OP_FOLDER_BY]) toggleBookmarkTree(bookmarkInfo)
const index = treeInfo.children.findIndex((x) => x.id === bookmarkInfo.id)
setHighlightedIndex(treeIndex, index)
},
handleRowMouseLeave: (bookmarkInfo: BookmarkInfo) => () => {
toggleBookmarkTree.cancel()
const index = treeInfo.children.findIndex((x) => x.id === bookmarkInfo.id)
unsetHighlightedIndex(treeIndex, index)
}
}
}, [
示例3: debounce
handleScroll: React.useMemo(() => {
if (!isRememberLastPositions) return undefined
const debouncedUpdateLastPosition = debounce(updateLastPosition, 100)
return (evt: ListOnScrollProps) => {
debouncedUpdateLastPosition({
id: treeId,
scrollTop: evt.scrollOffset
})
}
}, [isRememberLastPositions, treeId, updateLastPosition])