在前端开发中,异步编程是必不可少的一部分,而 JavaScript 中的 for await
循环语法则是异步迭代器最重要的一种语法。但在 ES6 中,for await
循环只支持运行于异步生成器函数内部的使用,而当在其他异步上下文中使用时,则不能直接使用 for await
来遍历异步序列。
为了解决这个问题,社区中出现了许多的解决方案,其中一个比较好用的方法是使用 for-await-of
语句进行异步迭代。而更好的是,有一个 npm 包 for-await
可以为我们提供便捷的解决方案,本文就是来介绍这个 npm 包的使用教程。
安装 for-await 包
首先,我们需要先安装 for-await
包,可以通过 npm 命令进行安装:
npm install --save for-await
for-await 包使用方法
使用方式也非常简单,我们可以把 AsyncIterable
序列转化成一个 Promise
,然后使用 await
等待数据,再将这个数据通过 for-of
循环进行遍历即可,这样在使用 for-await
包时无需担心上下文问题,代码看起来也非常清晰。
下面是 for-await
的代码示例:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- -------- --------------- - --- ----- ------ ---- -- ---------------- - ----- -------- - ----- ------------------- --------------------- - - -------- --------------- - ------ - ------------------------ - ----- ----- - -- ----- ------- -- - ----- ----- - - --- ----- - - ------ - ----- ------ - ----- --- --------------- -- ------------------- ------ -- ------ - ------------- - ------ - ------ --------------- ----- ----- - - ---- - ------ - ----- ---- - - - - - - - ----- -------- ------------------- - ----- --- --------------- -- ------------------- ------ ------ - ----- ---------- ------ ---------------------------------------- - - ---------------
在以上代码中,我们通过自定义一个异步迭代器 fetchAllUsers
来模拟了异步数据的获取,然后使用 for-await-of
循环迭代数据并进行操作。
总体来说, for-await
包的使用非常方便,可以让开发者更加专注于业务逻辑,而不需要考虑上下文问题。对于有一定编码基础的前端工程师来说,掌握异步编程是非常必要的一部分。然而建议,在进行异步编程时,一定要注意控制好回调的深度,使用 Promise 和 async/await 将回调拍平是非常必要的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055feb81e8991b448dda00