Generator生成器函数

这篇具有很好参考价值的文章主要介绍了Generator生成器函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 <script>
        //三个ajax异步的请求要保证执行的顺序
        //1. 传统的callback触发回调地狱  痛苦  处理异步任务按照顺序  异步-->同步化执行 代码的可读性更好
        //2. promise  then  then语义化明显
        //3.Generator生成函数
        //4.async await 
        //ajax函数 xhr
        //XHR代表 "XMLHttpRequest",是一种用于在Web浏览器和服务器之间发送HTTP请求和接收响应的API。它是一种基于事件驱动的技术,允许客户端通过JavaScript与服务器进行异步通信,而无需刷新整个页面。

        //通过使用XHR对象,开发者可以发送各种类型的HTTP请求,例如GET、POST和PUT等。XHR还支持异步请求,这意味着浏览器可以在等待服务器响应时继续执行其他操作,而不会阻塞用户界面
        // function ajax(url, fn) {
        //     let xhr = new XMLHttpRequest();
        //     xhr.open('GET', url);
        //     xhr.onreadystatechange = function() {
        //         ///4请求完全到达的状态并且请求成功的状态
        //         if (xhr.readyState === 4 && xhr.status == 200) {
        //             fn(JSON.parse(xhr.responseText))
        //         }
        //     }
        //     xhr.send()
        // }
        // ajax('https://api.github.com/users/wesbos', function(result) {
        //     console.log(result);
        //     ajax('https://api.github.com/users/wesbos', function(result) {
        //         console.log(result, '222');
        //         ajax('https://api.discogs.com/artists/51988', function(result) {
        //             console.log(result, '333');

        //         })
        //     })
        // })

        //假如有这么一个函数async()=》{}
        //不止执行一次  
        //生成器函数Generator function(async出现之前出现过,仅作为了解)
        //"yield" 这个关键字通常用于生成器函数或异步操作中,生成器函数可以通过 "yield" 关键字来暂停执行并向调用者返回一个值,而不是一次性执行完整个函数。这在处理需要逐步获取结果的异步操作或大量数据时非常有用。
        function* foo(x){
          console.log('1');
          yield x+1 //返回,记录下执行状态
          console.log('2');
          yield x+2
          console.log('3');
          return x+3
        }
        let steps = foo(1)//执行器 ,通过调用next()方法来逐步获取生成器函数中产生的值
       // console.log(steps.next());
        // console.log(steps.next());
        // console.log(steps.next());
        // console.log(steps.next());
        //或者使用以下es6的方法
        for(let x of steps){
          console.log(x );
        }

    </script>

运行结果:
Generator生成器函数,okhttp,前端
ok,投入实践文章来源地址https://www.toymoban.com/news/detail-832462.html

 //这个写法解决promise回调地狱的问题
        function ajax(url) {
            fetch(url) //promise二进制流
      			.then(data => data.json()) //promise将响应的二进制流转换为 JSON 格式,返回一个新的 Promise 对象
                .then(data => dataGen.next(data))//将获取到的数据传递给生成器函数中的下一个 yield 语句
        }//自动调用next方法了

        function* steps() { //生成器函数
            console.log('fetching beers');
            const beers = yield ajax('https://api.github.com/users/wesbos')
            console.log(beers);
            const wes = yield ajax('https://api.github.com/users/wesbos')
            console.log(wes);
            const fatJoe = yield ajax('https://api.discogs.com/artists/51988')
            console.log(fatJoe);
        }
        const dataGen = steps()
        dataGen.next();
        

到了这里,关于Generator生成器函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python中的列表生成式(List Comprehensions)和列表生成器(Generator)

    Python中的列表生成式(List Comprehensions)和列表生成器(Generator),是Python提供的两个高级应用机制。 生成式是一种简写机制,坚持了龟叔的“Python要简单优雅”的设计理念。 生成器虽然翻译成中文以后只有一字之差,但是实现的机制和生成式已经完全不同了。它存储的是一个

    2024年02月05日
    浏览(34)
  • mybatis-generator代码生成器的使用与配置

    官网的MyBatis Generator使用介绍,请点击下面的链接: 链接 MyBatis Generator 生成的文件包含三类: (1)Model实体文件,一个数据库表对应生成一个 Model 实体; (2)Mapper接口文件,数据数操作方法都在此接口中定义; (3)Mapper XML配置文件 在pom.xml文件添加如下依赖: 代码如下

    2024年02月14日
    浏览(28)
  • 5.6 Mybatis代码生成器Mybatis Generator (MBG)实战详解

    本文我们主要实战Mybatis官方的代码生成器:Mybatis Generator(MBG),掌握它以后,可以简化大部分手写代码,我们只需要写复杂逻辑代码! 通过前几篇,我们掌握了在SpringBoot下Mybatis的基本用法,操作步骤回顾一下: 创建与MySQL表对应的Java PO对象,字段一一对应; 创建Mapper接口,

    2024年02月05日
    浏览(28)
  • springboot的代码生成器mybatis-plus-generator-ui

    GeberatorUIServer 在springboot的test中运行 这段代码是一个用于生成 MyBatis-Plus 代码的工具类,进行解释: 这是一个名为 GeberatorUIServer 的类。 这是程序的入口方法,即 main 方法。 这段代码创建了一个 GeneratorConfig 对象,并使用链式调用的方式设置了一系列参数: jdbcUrl :数据库连

    2024年02月10日
    浏览(31)
  • mybatis-plus-generator-ui 可视化代码生成器!

    它提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等。 可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。 git地址 :https://github.com/davidfantasy/mybatis-plus-generator-ui 1、引入依赖 2、新建程序入口,以main函

    2024年02月08日
    浏览(47)
  • 【Python 4】列表与元组slice切片 迭代 列表生成式 生成器generator 迭代器Iterator对象

    在Python中,代码不是越多越好,而是越少越好 取一个list或tuple的部分元素是非常常见的操作 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作 L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3 如果第

    2024年02月07日
    浏览(36)
  • 【沐风老师】3dMax道路标识生成器插件Road Markings Generator使用方法详解

            Road Markings Generator道路标记生成器是一个高效的脚本,可以在3dsMax中自动创建道路标记的2D遮罩。它可以灵活地应用于Archviz项目,同时为3D艺术家节省大量时间。           【主要特点】 -创建可编辑的自定义人行横道线。 -可编辑街道侧面和中间的虚线和连续线。

    2023年04月23日
    浏览(36)
  • MyBatis-Plus 可视化代码生成器mybatis-plus-generator-ui

    在基于Mybatis的开发模式中,很多开发者还会选择Mybatis-Plus来辅助功能开发,以此提高开发的效率。虽然Mybatis也有代码生成的工具,但Mybatis-Plus由于在Mybatis基础上做了一些调整,因此,常规的生成工具生成的代码还有一些不太符合预期。而且对于多数据库的支持不是很好。

    2024年02月04日
    浏览(33)
  • Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器

    引用官方文档上的简介: 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等 ,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。 文档 github: https://github.com/davidfantasy/mybatis-plus-generator-ui gitee: https://g

    2024年02月10日
    浏览(37)
  • 【Midjourney】Midjourney 辅助工具 ③ ( Midjourney Prompt Generator 命令生成器 | Prompt Hero 提示词搜索引擎 )

    Midjourney 提示词命令 可以使用 辅助工具 进行生成 , 辅助工具如下 : Midjourney Prompt Tool 自定义命令工具 Midjourney Prompt Generator 命令生成器 Prompt Hero 提示词搜索引擎 Midjourney Prompt Generator 命令生成器 是 huggingface 公司开发的 Midjourney 辅助程序 ; Midjourney Prompt Generator 命令生成器 地址

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包