1.js 901 B

12345678910111213141516171819202122232425262728293031323334353637
  1. function retryGet(url, retries, interval) {
  2. return new Promise(function (resolve, reject) {
  3. let attempt = 0;
  4. const makeRequest = () => {
  5. get(url)
  6. .then((response) => {
  7. resolve(response);
  8. })
  9. .catch((err) => {
  10. attempt++;
  11. if (attempt < retries) {
  12. setTimeout(makeRequest, interval);
  13. } else {
  14. reject(new Error("达到最大重试次数"));
  15. }
  16. });
  17. };
  18. makeRequest();
  19. });
  20. }
  21. function get(url) {
  22. return new Promise((resolve, reject) => {
  23. const success = Math.random() >= 0.5;
  24. if(success) {
  25. resolve( "Success" );
  26. } else {
  27. reject(new Error("Fail"))
  28. }
  29. });
  30. }
  31. retryGet("https://example.com/api/data",3,2000).then((response) => {
  32. console.log(response,'成功');
  33. }).catch((error) =>{
  34. console.err(error.message)
  35. })