You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

17 lines
327 B

// @flow
export default function debounce<T>(fn: Function): () => Promise<T> {
let pending;
return () => {
if (!pending) {
pending = new Promise<T>(resolve => {
Promise.resolve().then(() => {
pending = undefined;
resolve(fn());
});
});
}
return pending;
};
}