美文网首页
Prmoise retry

Prmoise retry

作者: Chris__Liu | 来源:发表于2020-06-20 15:28 被阅读0次
Promise.retry = function (fn, interval, times) {
        return new Promise((resolve, reject) => {
          fn()
            .then((res) => resolve(res))
            .catch((e) => {
              if (times > 0) {
                console.log("重新请求")
                setTimeout(()=>{
                  resolve(Promise.retry(fn, interval, times - 1))
                },interval)
              } else {
                reject("超出最大轮询次数");
              }
            });
        });
      };

      const test = function () {
        return new Promise((resolve, reject) => {
          const num = Math.floor(Math.random() * 10);
          if (num > 7) {
            resolve(num);
          } else {
            reject(new Error(num));
          }
        });
      };

      Promise.retry(test, 1000, 5)
        .then((res) => {
          console.log(res);
        })
        .catch((e) => console.log(e));

相关文章

网友评论

      本文标题:Prmoise retry

      本文链接:https://www.haomeiwen.com/subject/catgxktx.html