Eine nützliche Bibliothek für verschiedene Funktionen
Tính đến
Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta
// @require https://update.greasyfork.org/scripts/528459/1545256/UTILS_FUNCTION%20Library.js
// ==UserScript==
// @name UTILS_FUNCTION Library
// @namespace dannysaurus.epik
// @version 1.0
// @description Eine nützliche Bibliothek für verschiedene Funktionen
//
// @license MIT
// ==/UserScript==
/* jslint esversion: 11 */
/* global unsafeWindow */
(() => {
'use strict';
unsafeWindow.dannysaurus_epik ||= {};
unsafeWindow.dannysaurus_epik.libraries ||= {};
unsafeWindow.dannysaurus_epik.libraries.UTILS_FUNCTION = (() => {
/**
* Throttle function calls with a timeOut between calls.
*
* The timeout is not reset if the function is called again before the timeout has expired.
*
* @param {Function} func - The function to throttle.
* @param {number} waitMs - The time to wait between function calls in milliseconds.
* @returns {Function} The throttled function.
*/
throttle = (func, waitMs) => {
let timeout = null;
let argumnentsForNextCall = null;
// Funktion, die später aufgerufen wird
const runAfterTimeout = () => {
if (argumnentsForNextCall) {
func.apply(null, argumnentsForNextCall);
argumnentsForNextCall = null;
timeout = setTimeout(runAfterTimeout, waitMs);
} else {
timeout = null;
}
};
return (...args) => {
if (!timeout) {
func.apply(null, args);
timeout = setTimeout(runAfterTimeout, waitMs);
} else {
argumnentsForNextCall = args;
}
};
};
return {
throttle,
};
})();
})();