`

es6 -- 生成器函数在异步运用的一个表现

 
阅读更多
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //模拟获取 用户数据 订单数据 商品数据
      function getUsers() {
        setTimeout(() => {
          let data = '用户数据'
          //调用next方法 并且将数据传入
          iterator.next(data)
        }, 1000)
      }

      function getOrders() {
        setTimeout(() => {
          let data = '订单数据'
          iterator.next(data)
        }, 1000)
      }

      function getGoods() {
        setTimeout(() => {
          let data = '商品数据'
          iterator.next(data)
        }, 1000)
      }

      function* gen() {
        let users = yield getUsers()
        console.log(users)
        let orders = yield getOrders()
        console.log(orders)
        let googs = yield getGoods()
        console.log(googs)
      }

      //调用生成器函数
      let iterator = gen()
      iterator.next()
    </script>
  </body>
</html>

 

分享到:
评论

相关推荐

    day04-es6-课件.rar

    生成器函数是带有星号(*)标识的普通函数,可以暂停执行并返回一个迭代器。通过`yield`关键字,生成器可以控制函数的执行流程,常用于实现复杂的异步操作。 9. **默认参数**: 在函数定义时可以直接为参数设置...

    day03-es6-课件.rar

    生成器允许编写可暂停/恢复的函数,常用于实现异步操作。 ```javascript function* count() { let i = 0; while (true) { yield i++; } } let gen = count(); console.log(gen.next().value); // 0 ``` ...

    es6-generator-example:带有 ES6 生成器函数的异步控制流示例

    ES6生成器(Generator)是JavaScript语言的一个重要特性,它为异步编程提供了一种全新的解决方案,让复杂的异步控制流变得更为简洁易懂。在本文中,我们将深入探讨ES6生成器的基本概念、工作原理以及如何在实际项目...

    ES6-in-depth(pdf)

    以上只是ES6中的一部分关键特性,实际的PDF文档可能会涵盖更多细节,包括异步函数(async/await)、生成器(generators)、代理(proxies)、反射(reflect)、尾调用优化(tail call optimization)等。这些内容...

    day05-es6-课件.rar

    8. **生成器(Generator)**:生成器函数用`*`标识,可以通过`yield`语句暂停和恢复执行,常用于异步控制流。 9. **模块打包工具Babel**:Babel的核心功能是将ES6+代码转化为ES5,确保在不支持新特性的浏览器中运行...

    将异步JavaScript函数转变成ES6生成器以便在他们可以在现代浏览器在nodejs中使用

    2. **使用生成器重构**:创建一个新的生成器函数,使用`yield`表达式来表示异步操作。这些`yield`表达式通常会返回一个Promise,这样生成器就可以在Promise解决或拒绝时暂停和恢复。 3. **协调生成器**:为了驱动...

    es6-play:es6-play是一个用于ES6的小项目

    - **生成器(Generators)**:支持协程,可暂停和恢复的函数,用于处理复杂的异步操作。 **学习资源与实践** `es6-play` 提供了一个理想的平台,你可以在这里尝试所有上述特性,并通过实践加深理解。同时,建议...

    async-tasks-with-es6-generators:使用 ES6 生成器处理异步任务

    要使用该库,您需要创建一个带有两个参数的运行器: 一个生成器函数。 在此函数中,您将yield异步任务。 使用回调调用异步任务以继续生成器(调用 next)。 回调返回 yield 表达式的value 。 然后运行程序获取 ...

    JavaScript es6-xmind.zip

    8. **生成器(Generator)**:生成器函数通过`function*`定义,可以暂停和恢复执行,常用于处理异步操作,配合yield关键字可以创建迭代器,简化异步编程。 9. **Set和Map数据结构**:Set类似于数组,但成员的值都是...

    es6 阮一峰

    8. **Generator**:生成器函数可以暂停和恢复执行,配合yield关键字处理复杂的异步流程。 9. **Set和Map数据结构**:Set提供了不重复元素集合,Map则是键值对的集合,两者都提供了更丰富的操作接口。 10. **默认...

    es6-generator-dialog:游戏对话系统中使用的 ES6 生成器示例

    ES6生成器(Generator)是JavaScript语言的一项特性,它在ES6中引入,极大地...通过研究这个项目,开发者不仅可以学习到ES6生成器的基础知识,还能了解到如何在实际项目中运用这些知识,提升自己的JavaScript编程技能。

    ES6-专案:ES6-专案

    生成器函数通过`function*`定义,可以暂停和恢复执行,常用于实现迭代和协程,如异步控制流。 9. **Set 和 Map 数据结构** Set和Map分别提供了不重复元素集合和键值对存储,弥补了数组和对象的不足。 10. **默认...

    Curso-Es6 ---火箭座椅

    10. **Generator**:生成器函数允许你创建迭代器,可以暂停和恢复执行,处理异步任务更加方便。 11. **Proxy**:创建代理对象,可以拦截和修改对象的各种操作,增强对象行为。 12. **Reflect API**:提供对语言...

    ES6-study:带有Dreamcoding的ES6-研究

    这些只是ES6中的一部分重要特性,实际的"ES6-study"项目可能还会涵盖其他细节,如迭代器、生成器、 WeakMap 和 WeakSet等。通过这个项目,你可以系统地学习和实践这些新特性,进一步提升你的JavaScript技能。

    Curso-ES6-

    10. **生成器(Generator)**:通过`function*`定义,生成器允许函数暂停执行,然后在后续调用中恢复,常用于异步编程和迭代操作。 这些是ES6中最核心的一些特性,通过"Curso-ES6-"课程,学习者将能够了解并熟练...

    es6-practice:玩 es6

    生成器允许通过`function*`定义函数,可以使用`yield`语句暂停和恢复函数执行,这在处理复杂异步逻辑或迭代时非常有用。 10. **Set 和 Map 数据结构**: Set 类似于数组,但成员的值都是唯一的,没有重复的值。...

    es6-engine:ES6 兼容 Famo.usEngine

    8. **生成器(Generator)**:通过yield关键字,生成器可以暂停和恢复执行,常用于实现异步流控制,如在Famo.usEngine中创建复杂的动画序列。 9. **默认参数和剩余参数**:默认参数允许函数参数设置默认值,剩余...

    js-es6-icons

    生成器函数(function*)可以暂停和恢复执行,使得异步编程变得更加灵活。通过yield关键字,生成器可以用于迭代、协程和实现复杂的异步流程控制。 10. **默认参数和剩余参数**: 函数参数可以设置默认值,当传入...

    sdi-04-demo-es6-code:为ES6演示的代码jeff

    【标题】"sdi-04-demo-es6-code:为ES6演示的代码jeff" 涉及的核心主题是JavaScript中的ES6(ECMAScript 2015)新特性,由开发者Jeff创建的一个代码示例库。这个项目可能是为了帮助其他开发者理解和学习ES6的新语法和...

Global site tag (gtag.js) - Google Analytics