https://github.com/codeclown/kaes
Cache results from function calls. Useful for e.g. AJAX.
https://github.com/codeclown/kaes
Last synced: 5 months ago
JSON representation
Cache results from function calls. Useful for e.g. AJAX.
- Host: GitHub
- URL: https://github.com/codeclown/kaes
- Owner: codeclown
- Created: 2016-10-01T14:43:39.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-10-02T12:33:04.000Z (over 9 years ago)
- Last Synced: 2025-09-29T09:37:12.294Z (5 months ago)
- Language: JavaScript
- Size: 1.95 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Kaes
Cache results from function calls. Useful for e.g. AJAX.
## Usage
Kaes caches results from asynchronous function calls and returns them instead of calling the original function multiple times.
```
const getUser = userId => get(`/users/${id}`);
getUser(1).then(console.log); // Do AJAX request
getUser(1).then(console.log); // Do AJAX request again...
getUser(1).then(console.log); // ...and again
const cached = kaes(getUser);
cached(1).then(console.log); // Do AJAX request
cached(1).then(console.log); // No extra AJAX request
cached(1).then(console.log); // Still no extra AJAX request
cached(2).then(console.log); // Do AJAX request for different ID
cached(2).then(console.log); // And again, no extra AJAX request
```
Note: reference to original result is retained.
```
const getUser = userId => get(`/users/${id}`);
const cached = kaes(getUser);
cached(1).then(user => {
return cached(1).then(cachedResult => {
console.log(cachedResult === user); // true
});
});
```
## Running tests
```
npm test
```
## License
MIT