npm 包 cancellation-token-source 使用教程

在前端开发中,有时需要在异步操作中取消请求或操作。而 npm 包 cancellation-token-source 可以帮助我们实现这一功能。本篇文章将介绍如何使用 cancellation-token-source 来实现取消异步操作的功能。

什么是 cancellation token?

cancellation token 是一个对象,用于控制异步操作的取消。当异步操作的执行者想要取消操作时,可以调用 cancellation token 的 cancel 方法,通知操作被取消。

安装和使用

首先,在项目中安装 cancellation-token-source 包:

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

然后,我们就可以在项目中使用该包了。下面是使用该包的示例代码:

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

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

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

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

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

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

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

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

在上述示例代码中,我们通过 CancellationTokenSource 类创建了一个 cancellation token,然后使用该 token 向远程 API 获取数据。如果在获取数据过程中,调用了 cancellation token 的 cancel 方法,那么获取数据的 promise 将被取消,控制权将抛给 catch 语句块。

深度解析

当我们创建了一个 cancellation token 后,它会为我们创建一个 controller 对象,该对象包含一个 signal 属性和一个 abort 方法。signal 属性是 AbortSignal 对象,用于通知操作是否被取消。我们在创建 request 的时候,把 signal 属性传给 fetch 函数,这样当 cancellation token 被取消时,signal 也会被设置为 abort 状态,从而取消 fetch 请求。

如果我们不传递 cancellation token 给异步操作,该类默认会创建一个新的 cancellation token。我们可以通过下述代码查看 cancellation token 对象和其中的属性和方法:

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

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

在我们的示例代码中,我们使用了 isCancelled 属性来检查操作是否被取消。该属性等同于 signal.aborted,即 cancellation tokensignal 属性的 aborted 属性。

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

指导意义

cancellation-token-source 包在处理异步操作时非常有用,使其能够更轻松地取消异步操作。使用该包可以避免出现各种繁琐的处理方案。例如,当用户在输入框中输入时,如果我们需要根据用户的输入结果来联想出结果并展示出来,那么在用户继续输入的过程中,我们可能不需要再进行联想展示,我们可以用 cancellation-token-source 简单地实现取消联想的操作,增加应用程序的用户体验。

总的来说,cancellation-token-source 包非常方便并且易于理解。它可用于在不同的异步操作场景下方便地取消该操作,并能从 catch 语句块中获取取消失败的操作原因。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668f5d9381d61a3540e91


猜你喜欢

  • npm 包 regexp-pattern 使用教程

    背景 在前端开发中,经常需要对字符串进行正则表达式的匹配,以实现各种功能。而正则表达式的模式对很多开发者来说并不容易理解和构建,因此需要一些辅助工具来帮助。 其中,npm 包 regexp-patte...

    3 年前
  • npm 包 @getogrand/react-swipeable-views 使用教程

    简介 @getogrand/react-swipeable-views 是一个用于 React.js 应用程序的 npm 包,它提供了轻松管理可轮播(swipeable)视图的解决方案。

    3 年前
  • npm 包 @konfy/vue-select 使用教程

    简介 @konfy/vue-select 是一个基于 Vue.js 的简单易用的下拉选择框组件,可用于前端开发中快速创建下拉选择框。它提供了许多的配置选项,包括选项显示、搜索、过滤等等。

    3 年前
  • npm 包 postcss-wrap-namespace 使用教程

    在前端开发领域中,CSS 是一个不可避免的部分。要让我们的样式代码在多人协作开发中,同时能够避免样式冲突的问题,就需要使用 postcss-wrap-namespace 这个 npm 包。

    3 年前
  • npm 包 countdown-timer-he 使用教程

    在前端项目开发中,时间管理是一个很重要的事情,我们需要在不同的场景下显示计时器,比如倒计时、时钟、运行时间等等。这时, countdown-timer-he npm 包就是一个很好的选择。

    3 年前
  • npm 包 @wikipedia-tts/video 使用教程

    在前端开发中,我们经常需要使用各种 npm 包来帮助我们更高效地开发应用。今天我们来介绍一个 npm 包 @wikipedia-tts/video,这是一个可以用来产生带有文本注解的音视频文件的插件。

    3 年前
  • npm 包 elmish-decoder 使用教程

    在前端开发中,elmish-decoder(以下简称 ED)是一个常用的 npm 包,用于解析 JSON 数据并将其转换为浏览器可识别的格式。在本文中,我们将介绍 ED 的安装使用方法,并给出一些实际...

    3 年前
  • npm包 @b-flower/bdm-scorm-packager的使用教程

    在前端开发中,我们经常需要将自己编写的课程或学习资料打包成SCORM标准的包来发布或制作成电子学习资料。@b-flower/bdm-scorm-packager是一款便捷的npm包,能够帮助我们轻松地...

    3 年前
  • npm 包 @zce/ghost-cli 使用教程

    介绍 @zce/ghost-cli 是一款用于与 Ghost 博客平台进行交互的命令行工具,可以方便地进行安装、配置、备份以及发布内容等操作。本文主要介绍如何安装和使用 @zce/ghost-cli ...

    3 年前
  • npm 包 inflex-api-response 使用教程

    前言 在开发前端应用的过程中,我们经常需要和后端进行数据交互。在获取数据时,我们会经常需要对数据进行格式化或者处理。而这种处理在后台处理也是可以的,但是这样往往会增加后端代码复杂度,而且也使得前端代码...

    3 年前
  • npm 包 win32-service 使用教程

    npm 包 win32-service 是一款 Windows 平台下的服务管理工具,用于管理、安装、卸载和启停 Windows Services 服务,可以方便地把 Node.js 应用作为一个 W...

    3 年前
  • npm 包 my-component-092 使用教程

    背景 在前端开发中,我们经常使用第三方库或组件来提高开发效率和代码重用率。而 npm 包则是前端开发中使用最广泛的包管理工具。本文将介绍如何使用 npm 包 my-component-092。

    3 年前
  • npm 包 stellar-2 使用教程

    简介 Stellar-2 是一个优秀的前端类 npm 包,它提供了丰富的交互类组件和工具函数,能够有效地提高前端开发效率。在本文中,我们将详细介绍 stellar-2 包的使用方式和一些常见问题的解决...

    3 年前
  • npm 包 domore 使用教程

    前言 在前端开发中,我们经常需要进行 DOM 操作,而使用原生 JavaScript 进行 DOM 操作可能会比较麻烦,不利于代码的可维护性。为了方便开发,我们可以使用一些第三方库来简化 DOM 操作...

    3 年前
  • npm 包 healthchecks-api 使用教程

    在大型前端项目中,如果遇到后端服务出现问题或者部署不完整,前端应用便会受到影响。因此,及时检查后端服务的健康状态变得尤为重要。为此,我们可以使用 healthchecks-api 这个 npm 包。

    3 年前
  • npm 包 @intl/core 使用教程

    在当代多语言网站或应用程序中,国际化是一项非常必要的功能。国际化允许开发人员根据用户的语言和地区自动显示相应的内容。在前端开发中,有许多方法可以实现国际化,其中之一就是使用 @intl/core 这个...

    3 年前
  • npm 包 @ockilson/schematics 使用教程

    前言 npm 是现代前端开发不可或缺的一部分。其中,@ockilson/schematics 是一个十分实用的 npm 包,它可以帮助我们实现自动化构建脚手架。本文将详细介绍 @ockilson/sc...

    3 年前
  • npm 包@pluritech/ng2-responsive-table 使用教程

    前言 本文将介绍一个前端 npm 包 @pluritech/ng2-responsive-table,该包是一个 Angular 组件库,用于创建响应式数据表格。本文将对该包的使用做详细的说明,帮助读...

    3 年前
  • npm 包 loadable-hook 使用教程

    在前端开发中,我们常常需要使用到异步加载组件的功能。在 React 中,我们可以使用 React.lazy 来实现组件的懒加载。但是,当我们在实际项目中使用时,往往需要做更多的处理。

    3 年前
  • npm 包 vi-sticker-footer 使用教程

    vi-sticker-footer 是一个轻量且易于使用的前端组件,可用于创建一个粘性的页脚,使其始终保持在页面的底部。本文将介绍如何使用 vi-sticker-footer 进行快速开发,包括安装、...

    3 年前

相关推荐

    暂无文章