[Autodesk] 用 Promise 做防抖
基础防抖 1 2 3 4 5 6 7 8 9 10 11 12 const _debounce = (fn, delay, immediate = false) => { let timer; return (...args) => { const callNow = immediate && !timer; clearTimeout(timer); timer = setTimeout(() => { timer = null; if (!immediate) fn(...args); }, delay); if (callNow) fn(...args); }; }; 带 Promise 的防抖 鼠标拖拽时如果频繁触发防抖,而被包装函数会调 API 并返回 Promise,通常只希望最后一次真正执行。Lodash 的 debounce 要求 func 必须是函数: ...