定时重试axios故障

时间:2018-08-17 06:23:21

标签: javascript ecmascript-6 promise axios

我正在为私人用途开发的节点模块中使用axios。在发生网络故障时,我想以一定的时间间隔执行重试(例如指数补偿)。我已经在我的其他react-redux项目中使用了来自redux-saga的延迟来做到这一点。下面是它的摘录:

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

我想使用纯es6实现相同的目的,或者建议我是否有任何轻量级的延迟库。

2 个答案:

答案 0 :(得分:0)

您可以使用Bluebird并在Promise.delay的基础上增加其Promise功能。

这将使您与发布的内容相似:

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") ;
});

答案 1 :(得分:0)

我不想仅将第三方库用于此目的。我创建了一个自定义的延迟方法,该方法返回promise,并在特定时间点后解析。这是相同的代码段:

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

这解决了我的问题。

相关问题