代码之家  ›  专栏  ›  技术社区  ›  Vinod Kolla

axios失败时的定时重试

  •  0
  • Vinod Kolla  · 技术社区  · 6 年前

    我正在开发供私人使用的节点模块中使用axios。在网络故障时,我希望以特定的间隔执行重试(如指数退避)。我已经在我的另一个react redux项目中使用redux saga的delay完成了这项工作。下面是它的片段:

    return dealy(500).then(() => axios(error.config))
    

    我想用普通的es6实现同样的功能,或者建议我是否有轻量级的延迟库。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Akrion    6 年前

    你可以用 Bluebird Promise.delay .

    Promise.delay(500).then(function() {
        console.log("500 ms passed");
        return "Hello world";
    }).delay(500).then(function(helloWorldString) {
        console.log(helloWorldString);
        console.log("another 500 ms passed") ;
    });
    
        2
  •  0
  •   Vinod Kolla    6 年前

    我不想只为这个目的使用第三方库。我已经创建了一个自定义的延迟方法,它返回promise并在某个时间点后解析。以下是相同的代码片段:

    const delay = (timeMs) => new Promise((resolve) => setTimeout(() => resolve(), timeMs));
    

    这解决了我的问题。