首页 > web前端 > js教程 > 正文

如何使用数组参数顺序执行 Promise?

Mary-Kate Olsen
发布: 2024-10-20 14:59:02
原创
448 人浏览过

How to Execute Promises Sequentially with Array Parameters?

使用数组参数顺序执行 Promise

在某些情况下,您可能需要顺序执行 Promise,从数组传递参数。当动态填充数组并且执行顺序至关重要时,这是必要的。

创建“可暂停循环”的一种方法是重复使用 .then 方法。然而,这可能很麻烦,并会导致金字塔形的 Promise 链。

使用 Promise

更简洁的解决方案涉及使用 Array.reduce 将 Promise 链折叠成单个 Promise:

myArray.reduce(
  (p, x) =>
    p.then(() => myPromise(x)),
  Promise.resolve()
)
登录后复制

这种方法创建了一系列链式承诺,确保顺序执行。

使用异步函数

或者,异步函数可以实现更具可读性和更高效的实现。以下示例使用异步函数来迭代并执行 Promise:

const forEachSeries = async (iterable, action) => {
  for (const x of iterable) {
    await action(x)
  }
}

forEachSeries(myArray, myPromise)
登录后复制

收集返回值

如果需要从 Promise 收集返回值,可以使用修改后的版本forEachSeries 函数的 mapSeries:

const mapSeries = async (iterable, fn) => {
  const results = []

  for (const x of iterable) {
    results.push(await fn(x))
  }

  return results
}
登录后复制

此函数迭代可迭代对象,收集 Promise 的结果并返回结果数组。

通过使用这些技术,您可以轻松地按顺序执行 Promise,从数组传递参数,确保执行顺序并根据需要收集结果。

以上是如何使用数组参数顺序执行 Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!