npm 包 @lumino/polling 使用教程

阅读时长 4 分钟读完

介绍

@lumino/polling 是一个能够周期性地执行函数的 npm 包。使用该包,可以很方便地实现周期性地访问 API 或者更新页面数据等功能。

该包的官方文档中描述如下:

A Poll class which polls a function at a fixed interval. Polling can be paused and resumed at any time, and the polling interval can be dynamically adjusted. This is useful for polling an API or periodically updating data, for example.

安装

使用 npm 安装 @lumino/polling:

使用方法

创建 Poll 实例

可以通过如下方式创建 Poll 实例:

其中:

  • factory:该属性用于设置周期性执行的回调函数;

  • interval:该属性用于设置执行周期,单位为毫秒;

  • standby:该属性用于设置当 Poll 实例被暂停时的回调函数。

控制 Poll 实例

启动 Poll 实例

可以通过 poll.start() 函数来启动 Poll 实例,如果 Poll 实例已经启动,可以忽略该操作:

暂停 Poll 实例

可以通过 poll.pause() 函数来暂停 Poll 实例的执行:

重启 Poll 实例

可以通过 poll.restart() 函数来重启 Poll 实例,即在 Poll 实例已经启动的情况下,重新开始执行回调函数:

调整 Poll 实例的执行周期

可以通过 poll.interval(newInterval) 函数来调整 Poll 实例的执行周期:

监听 Poll 实例的状态变化

可以通过 poll.stateChanged.connect((_: Poll<any>) => {...}) 函数来监听 Poll 实例状态的变化。Poll 实例状态主要由以下三种:

  • Poll.State.Running:Poll 实例正在执行。

  • Poll.State.Paused:Poll 实例已经被暂停。

  • Poll.State.Standby:Poll 实例处于待机状态。

示例

假设我们需要周期性地访问一个上报 API,并输出结果,请看以下示例代码:

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

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

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

学习和指导意义

@lumino/polling 是一个非常实用的 npm 包,能够很方便地实现周期性执行回调函数的功能。使用该包,可以促进前端开发效率的提升,减少手动刷新 API 或页面的频率。

另外,该包的源码实现也值得学习,其中依赖了很多前端技术栈,如 Observable,ES6 Syntax 等。

因此,学习和掌握 @lumino/polling 的使用方法,不仅有助于提高前端开发效率,而且能够提高前端程序员对多种前端技术栈的了解和掌握程度,对于后续的前端开发工作也会很有帮助。

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

纠错
反馈