memoized jQuery ajax promise
Testing jQuery's post method with lodash's memoize method.
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<p>
Open your console to see the asynchronous requests. Lodash's `<a href="https://lodash.com/docs#memoize">memoize</a>` method should cache the promise returned by jQuery's `post` method.
</p>
JavaScript
var iterations = 0;
console.log('-------------START-------------');
(function intervalRequest() {
var requestData = {
json: JSON.stringify({
"name": "jaguar",
"profession": "scullery maid",
"sex": "awww yeeeahhh"
}),
delay: 5
};
var post = _.memoize(function(endpoint, requestData) {
return $.post(endpoint, requestData, null, 'json');
}, function() {
return JSON.stringify(requestData)
});
console.log('lodash cache:', post.cache);
post('/echo/json/', requestData)
.done(function(responseData) {
console.log('done:', responseData);
})
.always(function(responseData) {
intervalRequest();
iterations++;
});
}());