Add once snippet

This commit is contained in:
atomiks
2018-01-02 09:40:46 +11:00
parent 7edaae36a1
commit c58488d1e7
2 changed files with 28 additions and 0 deletions

27
snippets/once.md Normal file
View File

@ -0,0 +1,27 @@
### once
Ensures a function is called only once.
Utilizing a closure, use a variable flag and set it to true once the function is called
for the first time, preventing it from being called again. Allow the function to be supplied
with an arbitrary number of arguments using the spread/rest (`...`) operator.
```js
const once = fn => {
let called = false;
return (...args) => {
if (!called) {
fn(...args);
called = true;
}
};
};
```
```js
const startApp = event => {
// initializes the app
console.log(event); // access to any arguments supplied
};
document.addEventListener('click', once(startApp)); // only runs `startApp` once upon click
```

View File

@ -95,6 +95,7 @@ negate:logic
nthElement:array
objectFromPairs:object
objectToPairs:object
once:function
onUserInputChange:browser
orderBy:object
palindrome:string