简介
insistence 是一个前端开发时常用的 npm 包,用于重试请求。在实际开发中,网络请求不可避免地会出现失败的情况,而这时候可以用 insistence 来帮助我们重新发起请求,直到请求成功为止。
安装
在终端中输入以下命令进行安装:
npm install insistence
使用
使用 insistence 前需要先引入它:
const Insistence = require('insistence');
基础使用
-- -------------------- ---- ------- ----- ------ - ----- --- ------------ ------ -- -- ------ ------ ----- -- ---- ------------ ------------- - -- ----- -------------- -------------- - -- ----- ----- - ------------- -- - ------ ----------------------------- ---
在上述例子中,我们创建了一个 Insistence 实例,并通过 attempt 方法发起了一个请求。如果请求失败,Insistence 会在指定的延迟时间过后重试请求,直到请求成功或者达到最大重试次数。
retry
和 delay
可以根据需求对其进行调整。
自定义判断请求是否成功的方法
默认情况下,Insistence 会判断请求是否成功的方法是判断请求是否返回 status code 为 2xx,但在实际开发中,我们可能需要根据其他条件来判断请求是否成功。这时候,我们可以通过传递 isSuccess
方法来自定义规则:
-- -------------------- ---- ------- ----- ------ - ----- --- ------------ ------ -- ------ ----- -------------- - ------ --------------- --- ---------- -- ------------ ------------- - -------------- -------------- - -- ----- ----- - ------------- -- - ------ --------------------------------- ---
自定义重试延迟时间
Insistence 默认的延迟时间是 1000 毫秒,但在实际开发中,我们可能需要根据实际情况来调整延迟时间。这时候,我们可以通过传递 calculateDelay
方法来自定义计算延迟时间的规则:
-- -------------------- ---- ------- ----- ------ - ----- --- ------------ ------ -- ---------------------------- - ------ - -- ------------ - ---- -- -------------- - ---------------------- -- ------------ ------------- - -------------- -------------- - -- ----- ----- - ------------- -- - ------ --------------------------------- ---
总结
Insistence 是一个非常实用的 npm 包,可以帮助我们在网络请求失败时自动重试请求,并且提供了丰富的自定义选项,非常适用于实际开发中的网络请求场景。
示例代码
-- -------------------- ---- ------- ----- ---------- - ---------------------- ----- ------ - ----- --- ------------ ------ -- -- ------ ------ ----- -- ---- ------------ ------------- - -- ----- -------------- -------------- - -- ----- ----- - ------------- -- - ------ ----------------------------- --- --------------------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057c9681e8991b448ebf4f