小编tto*_*ous的帖子

如何重试 Promise 决议 N 次,并在尝试之间有延迟?

我想要一些 JavaScript 代码将 3 个东西作为参数:

  • 返回 Promise 的函数。
  • 最大尝试次数。
  • 每次尝试之间的延迟。

我最终做的是使用for循环。我不想使用递归函数:这样,即使有 50 次尝试,调用堆栈也不会长 50 行。

这是代码的打字稿版本:

/**
 * @async
 * @function tryNTimes<T> Tries to resolve a {@link Promise<T>} N times, with a delay between each attempt.
 * @param {Object} options Options for the attempts.
 * @param {() => Promise<T>} options.toTry The {@link Promise<T>} to try to resolve.
 * @param {number} [options.times=5] The maximum number of attempts (must be greater than 0).
 * @param {number} [options.interval=1] The interval …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise typescript

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×1

node.js ×1

promise ×1

typescript ×1