ECMAScript 2018 (ES9):重头戏是并发 + 异步循环

阅读时长 4 分钟读完

ECMAScript 2018(简称ES9)是 JavaScript 的最新版本,于2018年6月发布。它包含了许多新特性和改进,其中最值得关注的是并发和异步循环。

并发

并发是指在同一时间内执行多个任务的能力。在ES9中,引入了两个新的API来支持并发执行:Promise.allSettledfor await...of

Promise.allSettled

Promise.allSettled接收一个Promise数组,返回一个新的Promise,当所有的Promise都已经完成或被拒绝后,它将返回一个包含每个Promise结果的数组。不同于Promise.allPromise.allSettled不会在任何一个Promise被拒绝时中止执行。

下面是一个例子:

输出结果:

for await...of

for await...of是一个新的异步迭代器,可以用于遍历异步生成器(AsyncGenerator)或其他可迭代的异步对象。它可以使异步代码更加简洁和易读。

下面是一个例子:

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

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

------

输出结果:

异步循环

异步循环是指在循环中等待异步操作完成后再继续执行下一次循环。在ES9中,引入了asyncawait关键字来支持异步循环。

async/await

async/await是一种基于Promise的异步编程模型,它可以使异步代码更加简单和易读。async关键字用于定义一个异步函数,await关键字用于等待一个Promise的完成。

下面是一个例子:

输出结果:

并发执行

虽然async/await可以让异步代码更加简单和易读,但是它仍然是顺序执行的。如果我们需要并发执行多个异步操作,可以使用Promise.all来实现。

下面是一个例子:

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

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

------

输出结果:

结论

ECMAScript 2018(ES9)引入了许多新的特性和改进,其中最值得关注的是并发和异步循环。Promise.allSettledfor await...of支持并发执行,async/awaitPromise.all支持异步循环。这些新特性可以使JavaScript更加强大和灵活,也可以使我们的异步代码更加简单和易读。

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

纠错
反馈