异步迭代器
在异步编程中,经常需要遍历异步数据流进行操作。ES2018 引入了异步迭代器,可以方便的实现异步数据流的迭代。
异步迭代器是一个对象,它实现了 Symbol.asyncIterator
方法。该方法返回一个迭代器对象,该对象具有 next
方法,用来异步获取下一个值。
下面是一个简单的例子,通过异步迭代器实现对异步数据流的遍历。
----- -------- --------- - -- ------ ----- ------ - ----- --------------------------------------- ----- ---- - ----- -------------- -- ------- ------ - ------------------------ - --- ----- - -- ------ - ----- ------ - ----- ----- - -------------- -- ------- ----- --- ------------ - ------ - ------ ----- ----- -- - ---- - ------ - ----- ---- -- - - -- - -- - ----- -------- --------- - ----- ---- - ----- ---------- --- ----- ------ ---- -- ----- - ------------------ - - ----------
首先,通过 async function
异步获取数据,然后构造一个异步迭代器对象,该对象通过 Symbol.asyncIterator
方法实现。该方法返回一个迭代器对象,该对象具有 next
方法,用来异步获取下一个值。
使用 for await...of
循环遍历异步数据流,每次异步获取下一个值,直到数据流结束。
Rest/Spread 属性函数
Rest/Spread 属性函数是一个比较有用的语言特性,它可以更方便地处理对象和数组。
Rest 属性函数用来获取对象或数组的剩余部分,放到一个新的对象或数组中。Spread 属性函数用来将对象或数组展开,放到另一个对象或数组中。
Rest 属性函数
下面是 Rest 属性函数的简单示例。
----- - -- -- ---- - - - -- -- -- -- -- -- -- - -- --------------- -- - -- -- -- - - ----- ------- ------- -------- - --- -- -- -- --- ------------------ -- --- -- --
在该示例中,使用了对象解构和数组解构语法,通过 ...
运算符获取对象或数组的剩余部分。得到了一个新的对象或数组。
Spread 属性函数
下面是 Spread 属性函数的简单示例。
----- - - --- -- --- ----- - - --- -- --- ----- - - ------ ------ --------------- -- --- -- -- -- -- -- ----- - - - -- -- -- - -- ----- - - - ----- -- - -- --------------- -- - -- -- -- -- -- - -
在该示例中,使用了 Spread 运算符,将对象或数组展开,放到另一个对象或数组中。
此外,对象解构和数组解构语法也支持 Spread 运算符,可以将对象或数组中的属性值直接解构到另一个对象或数组中。
总结
异步迭代器和 Rest/Spread 属性函数是 ECMAScript 2018 小幅更新中较重要的特性。它们极大地简化了异步编程和处理对象和数组的过程,是前端开发人员必须掌握的知识。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64a1225748841e9894d67935