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

如何为动态数组顺序执行 Promise?

Barbara Streisand
发布: 2024-10-20 14:58:30
原创
490 人浏览过

How to Execute Promises Sequentially for Dynamic Arrays?

使用动态填充的数组顺序执行 Promise

使用数组时,通常需要为每个元素顺序执行一系列任务,并在 Promise 之间传递参数。

Promises 的顺序执行

要实现这一点,可以使用一系列嵌套的 .then() 调用。然而,随着数组大小的增加,这种方法变得麻烦且不灵活。

使用Reduce进行折叠

一个简洁的解决方案是使用 .reduce() 方法将数组折叠成一系列Promise 数量:

<code class="js">const promiseChain = myArray.reduce(
  (p, x) => p.then(() => myPromise(x)),
  Promise.resolve()
);</code>
登录后复制

用于循环的异步函数

更易于维护的方法是使用异步函数来迭代数组并按顺序执行每个 Promise:

<code class="js">const forEachSeries = async (iterable, action) => {
  for (const x of iterable) {
    await action(x);
  }
};

forEachSeries(myArray, myPromise);</code>
登录后复制

收集返回值

如果需要promise的返回值,可以对mapSeries函数稍作修改:

<code class="js">const mapSeries = async (iterable, fn) => {
  const results = [];

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

  return results;
};</code>
登录后复制

这种方法在以下情况下提供了更大的灵活性和代码可读性:处理承诺的动态数组。

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

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