Only keep a single instance, aborting previous instances on subsequent calls
npm install auto-abort
var autoAbort = require('auto-abort')
var autoXhr = autoAbort(require('xhr'))
autoXhr({url: '/autocomplete', json: {q: 'hel'}}, handleResponse)
autoXhr({url: '/autocomplete', json: {q: 'hell'}}, handleResponse)
autoXhr({url: '/autocomplete', json: {q: 'hello'}}, handleResponse)
function handleResponse (err, data, res) {
// Should only be called once, with the most recent request
}
Wraps fn
with a function that will only keep a single instance of whatever fn
returns around, calling .abort()
on the previous instance before calling
fn
again. If you need to call another function than .abort()
, use the
abortHandler
.
Type: Function
The function to wrap. Examples being xhr
and d3.json
Type: Function
Default: function (instance) { return instance.abort() }
Allows you to abort the instance manually, eg. if you need to do some other
logic around it or have an abort function of another name, eg. .cancel()
like
on requestAnimationFrame