npm 包 cancellable-promise-polling 使用教程

阅读时长 3 分钟读完

前言

在前端开发中,经常会遇到需要轮询接口数据的情况。很多时候我们并不知道轮询多少次能够拿到有效数据,如果我们不加以限制,就有可能使请求太频繁,造成服务器的压力增大,浪费带宽资源。

在这时,一个能够进行轮询控制,能够在必要时停止轮询请求的npm包就显得尤为重要。这里我介绍一个npm包,cancellable-promise-polling,它能够在一个Promise上进行轮询,并支持取消Promise。下面我将详细介绍如何使用它。

安装

cancellable-promise-polling是一款npm包,可以通过以下命令进行安装:

使用

使用它非常简单,只需要通过 poll 函数来创建轮询Promise即可。 poll函数接收两个参数:

  • pollingFn(Function(required)): 每次轮询执行的方法。
  • interval(Number(required)): 轮询时间间隔。

下面是一个例子:

在该例子中,每隔3秒轮询一次 example.com/api/getData 接口并返回请求结果。返回结果通过 then 方法进行获取,错误通过 catch 方法进行捕获。

取消轮询

如果我们想在某个时间点取消轮询Promise,那么cancellable-promise-polling包也支持该功能。我们需要使用 cancel 函数来停止轮询Promise。下面是一个例子:

-- -------------------- ---- -------
------ - ----- --------------- - ---- ------------------------------

----- --------- - -- -- ---------------------------------
----- -------- - -----

----- - -------- ------ - - -------------------------- ----------

------------------ -------

-------
  ---------- -- ------------------
  ------------ -- ----------------------

在上例中,我们使用 cancellablePoll 函数代替 poll 函数来创建Promise。我们在Promise开始轮询后,设置一个15秒后的超时操作,调用 cancel 函数来停止Promise轮询。promise 结果可以像之前那样通过 then 方法获取,错误也可以通过 catch 方法捕获。

需要注意的是,cancellablePoll 函数返回两个对象,其中 promise 为轮询Promise的实例, cancel 为停止Promise轮询的方法。

总结

cancellable-promise-polling npm包是一款实用的工具,能够帮助我们简化轮询请求的操作,并且还支持在必要时停止轮询请求。 如果你在项目中需要进行轮询的操作,那么cancellable-promise-polling npm包就可以提供良好的帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006735a890c4f7277583ed1

纠错
反馈