{"id":5036,"date":"2021-05-05T10:49:26","date_gmt":"2021-05-05T09:49:26","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=5036"},"modified":"2022-07-25T08:35:41","modified_gmt":"2022-07-25T07:35:41","slug":"typescript-javascript-minimal-debounce","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/typescript-javascript-minimal-debounce\/","title":{"rendered":"Typescript \/ javascript minimal debounce"},"content":{"rendered":"\n<p>Source: <a href=\"https:\/\/www.freecodecamp.org\/news\/javascript-debounce-example\/\">https:\/\/www.freecodecamp.org\/news\/javascript-debounce-example\/<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function debounce(func: Function, timeout = 300) {\n    let applyAgain = false;\n    let timer: number;\n    return (...args: any) => {\n        if (!timer) {\n            func.apply(this, args);\n        } else {\n            applyAgain = true;\n        }\n        clearTimeout(timer);\n        timer = setTimeout(() => {\n            timer = undefined;\n            if (applyAgain) {\n                func.apply(this, args);\n                applyAgain = false;\n            }\n        }, timeout);\n    };\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Source: https:\/\/www.freecodecamp.org\/news\/javascript-debounce-example\/<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5,4,1],"tags":[],"class_list":["post-5036","post","type-post","status-publish","format-standard","hentry","category-javascript","category-programming","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/5036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=5036"}],"version-history":[{"count":3,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/5036\/revisions"}],"predecessor-version":[{"id":5039,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/5036\/revisions\/5039"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=5036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=5036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=5036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}