think-debounce
think-debounce
runs a time-consuming operation. The operation may be called several times concurrently, but within think-debounce
, it will only be run once before it's finished.
In particular, You can use think-debounce
to avoid duplicate requests for a remote API.
Syntax
;const instance = ;instance;
key
{String} the identity of the operation.callback
{Function} the function which contains the operation and returns a Promise object.- return {Object} a Promise object.
Usage
Take reading a local file for an example:
;; let instance = ;let readTimes = 0;let awaitKey = 'readMyFile';let filePath = '../my/file/path';let { return { // even if `readMyFile` operation is called several times, // `readMyFileCallback` will only be run once before it's finished. readTimes ++; fs; };} let promise1 = instance;let promise2 = instance; return Promiseallpromise1 promise2;