实现useRequest
Sunny-117 opened this issue · comments
实现useRequest
const useRequest = (request,options = {}){
const {debounceWait = 0,throttleWait = 0} = options
const [loading,setLoading] = useState(false)
const [error,setError] = useState(null)
const [data,setData] = useState(null)
const run = useCallback((params)=>{
setLoading(true)
const doRequest = ()=>{
request(params).then(res=>setData(res)).catch(e=>setError(e))
.finally(setLoading(false))
}
if(debounceWait > 0){
debounce(doRequest,debounceWait)
}else if(throttleWait > 0){
throttle(doRequest,throttleWait)
}else{
doRequset()
}
}
,[request,debounceWait,throttleWait])
return {loading,run,error,data}
}