npm包 calls 使用教程

阅读时长 5 分钟读完

什么是 calls

calls是一个 npm 包,它提供了一种简单而优雅的方式来处理函数调用的异常情况。它是由 Richard Rodger 开发的。

在 JavaScript 中,当一个函数出现异常时,往往会使程序停止运行。这可能会导致应用程序的崩溃或不良的用户体验。calls指定了一种另一种方式,即在函数执行失败的情况下,它以捕获错误、记录错误并清理资源的方式来停止函数的进程。

通过使用calls,您可以放心地编写函数代码,并在运行时保持稳定。在今天的世界中,稳定性和健壮性是一个成功的应用程序的关键因素。

如何使用 calls

安装

要安装calls,请使用以下 npm 命令:

调用一个函数

调用一个函数需要两个参数:

  1. fn:被调用函数。
  2. args:函数的参数数组。

如果您需要处理异步函数,则fn必须使用 Node 风格的回调函数(即第一个参数为错误对象)。这是一个简单的栗子:

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

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

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

对于同步函数,可以简单地传递函数和参数列表:

如果函数被成功执行,函数的返回值将会在回调函数的result参数传递。如果函数执行失败,则错误消息将在err参数中传递。

指定重试策略

您可以指定重试函数调用的策略。calls使用了 node-retry 库,因此您可以使用与其相同的设置选项。

要指定重试的策略,请向options对象中添加以下属性:

  • retries:默认值为 5。表示最大重试次数。
  • factor:默认值为 2。每次重试之间的时间因子(默认情况下,时间延迟为2倍)。
  • minTimeout:默认值为 1000。第一次重试之前的时间延迟(以毫秒为单位)。
  • maxTimeout:默认值为 Infinity。最长等待时间(以毫秒为单位)。
  • randomize:默认值为 false。设置为 true 可以在每次重试时添加一些随机化。

以下是一个使用指定重试策略的栗子:

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

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

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

请注意,如果您忽略options参数,则不会应用任何重试策略。

指定超时时间

您可以使用timeout参数设置重试运行的最长时间(以毫秒为单位)。如果函数在指定时间内未完成,则将停止执行并返回错误。

以下是如何使用timeout参数的示例:

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

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

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

指定一个 logger

您可以使用自定义logger指定在记录错误时包含有用信息的策略。默认情况下,calls使用console.log函数记录错误。如果您需要将错误记录到其他地方(例如你的日志文件),则可以定义一个自定义logger并将其传递给options参数。

下面是如何使用自定义logger的示例:

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

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

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

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

在上面的代码中,myLogger函数将被调用以记录发生的错误、函数名称和函数参数。

总结

在JavaScript开发中,处理函数调用的异常情况非常重要。npackage包 calls 是一个非常有用、简单而优雅的解决方案,使您可以保持稳定,并让您的代码更加健壮。

在本教程中,我们介绍了如何使用 calls,包括如何调用函数、指定重试策略、指定超时时间和自定义日志记录器。

请您自己动手试一试吧!

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

纠错
反馈