@taro-hooks/use-request
Version:
useRequest hook for Taro
33 lines • 805 B
JavaScript
import { useRef } from '@taro-hooks/core';
var useLoadingDelayPlugin = function useLoadingDelayPlugin(fetchInstance, _ref) {
var loadingDelay = _ref.loadingDelay;
var timerRef = useRef();
if (!loadingDelay) {
return {};
}
var cancelTimeout = function cancelTimeout() {
if (timerRef.current) {
clearTimeout(timerRef.current);
}
};
return {
onBefore: function onBefore() {
cancelTimeout();
timerRef.current = setTimeout(function () {
fetchInstance.setState({
loading: true
});
}, loadingDelay);
return {
loading: false
};
},
onFinally: function onFinally() {
cancelTimeout();
},
onCancel: function onCancel() {
cancelTimeout();
}
};
};
export default useLoadingDelayPlugin;