useAsyncRetry

使用useAsync和一个额外的retry方法来轻松重试/刷新异步函数;

Usage

  1. import {useAsyncRetry} from 'react-use';
  2. // Returns a Promise that resolves after one second.
  3. const fn = () => new Promise((resolve, reject) => {
  4. setTimeout(() => {
  5. if (Math.random() > 0.5) {
  6. reject(new Error('Random error!'));
  7. } else {
  8. resolve('RESOLVED');
  9. }
  10. }, 1000);
  11. });
  12. const Demo = () => {
  13. const state = useAsyncRetry(fn);
  14. return (
  15. <div>
  16. {state.loading?
  17. <div>Loading...</div>
  18. : state.error?
  19. <div>Error...</div>
  20. : <div>Value: {state.value}</div>
  21. }
  22. {!state.loading?
  23. <a href='javascript:void 0' onClick={() => state.retry()}>Retry</a>
  24. : null
  25. }
  26. </div>
  27. );
  28. };

Reference

  1. useAsyncRetry(fn, args?: any[]);