discourse/app/assets/javascripts/discourse-common/addon/lib/debounce.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

21 lines
646 B
JavaScript
Raw Normal View History

import { debounce } from "@ember/runloop";
2022-06-22 04:01:03 +08:00
import { isTesting } from "discourse-common/config/environment";
/**
Debounce a Javascript function. This means if it's called many times in a time limit it
should only be executed once (at the end of the limit counted from the last call made).
Original function will be called with the context and arguments from the last call made.
**/
export default function () {
if (isTesting()) {
// Replace the time argument with 10ms
let args = [].slice.call(arguments, 0, -1);
args.push(10);
return debounce.apply(undefined, args);
} else {
return debounce(...arguments);
}
}