首页 > 其他分享 >自动执行generator生成器函数

自动执行generator生成器函数

时间:2024-10-21 16:11:44浏览次数:7  
标签:const 函数 generator res2 res1 生成器 next

自动执行generator函数

◼ 目前我们的写法有两个问题:
    第一,我们不能确定到底需要调用几层的Promise关系;
    第二,如果还有其他需要这样执行的函数,我们应该如何操作呢?
◼ 所以,我们可以封装一个工具函数execGenerator自动执行生成器函数
  <script>
      // 封装一个请求方法
      function requestData(count){
        return new Promise((resolve,rejdect)=>{
          setTimeout(()=>{
            resolve(count)
          },2000)
        })
      }
      // 3. 生成器的处理方案
          function* getData(){
            const res1 =yield requestData("hdc")
            console.log("res1:",res1)
            const res2 =yield requestData(res1+",kobe")
            console.log("res2:",res2)
            const res3 =yield requestData(res2+",james")
            console.log("res3:",res3)
          }
        //   const generator = getData()
        //   generator.next().value.then(res1 =>{
        //     generator.next(res1).value.then(res2 =>{
        //       generator.next(res2).value.then(res3 =>{
        //         generator.next(res3)
        //         })
        //     })
        //  })
        // 自动化执行生成器函数
        function execGenFn(fn){
          // 获取对应函数的生成器
          const generator = fn()
          //定义一个递归函数
          function exec(res){
          const result =  generator.next(res)
          if(result.done){return}
          result.value.then(res=>{
            exec(res)
          })
          }
          // 执行递归函数
          exec()
        }
        execGenFn(getData)
    </script>

标签:const,函数,generator,res2,res1,生成器,next
From: https://www.cnblogs.com/hdc-web/p/18489670

相关文章

  • mongodb 查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操
    mongodb查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操作符,更新单个/多个文档,删除文档,批量插入,$type操作符,内嵌文档和数组查找修改1.条件查询SQLMQLa=1{a:1}a<>1{a:{$ne:1}}a>1{a:{$gt:1}}a>=1{a:{$gte:1}}a<1{a:{$lt......
  • c语言 选票系统 函数封装
    #include<stdio.h>#include<string.h>intfeipiao=0;structxm{ charname[32]; inttickets;};//选民人员输入voidxuanmin(intlen,structxmarr[]){ inti; for(i=0;i<len;i++) { printf("请输入选民的名字:\n"); scanf("%s",arr......
  • C++静态成员变量和静态成员函数的使用
    1.静态成员变量:定义在类中的静态成员,以static关键字初始化和成员变量区别:a.可以通过类名::变量名进行调用,可访问性还是由(public,private,protected)进行限制 例如下面的mystaitcClass::_id,protected属性内容无法直接进行访问,若要直接访问需要修改为public2.静态成员函数:类似可以通过......
  • Generator(生成器)
    ◼生成器是ES6中新增的一种函数控制、使用的方案,它可以让我们更加灵活的控制函数什么时候继续执行、暂停执行等。平时我们会编写很多的函数,这些函数终止的条件通常是返回值或者发生了异常。◼生成器函数也是一个函数,但是和普通的函数有一些区别:首先,生成器函数需要在f......
  • mysql窗口函数
    窗口函数SUM()统计SELECT *, SUM(duration)OVER()ASexp1, ##统计全部数据合计值 SUM(duration)OVER(PARTITIONBYuser_name)ASexp2, ##分组求和,不同数据相同分组会展示相同的累积值 SUM(duration)OVER(ORDERBY`date`ASC)ASexp3, ##全部数据累积和,......
  • 云函数+对象存储全包!MemFire Cloud让开发如此轻松
    在开发世界里,想要快速交付一个产品,后端服务、数据存储和API接口等往往是让开发者最头疼的环节。尤其是对于个人开发者或者小型团队而言,想要自己搭建完整的后端架构,无疑是一项费时费力的工作。现在有了MemFireCloud,这一切都变得简单了。MemFireCloud是一款为“懒人”开发者......
  • [oeasy]python037_ print函数参数_sep分隔符_separator
    print函数参数_sep分隔符_separator回忆上次内容上次了解了类型type本意来自于印记   添加图片注释,不超过140字(可选) 要特别注意type类型   添加图片注释,不超过140字(可选) 给函数传递参......
  • P11211 随机数生成器 题解
    前置知识:原根,exCRT。首先\(t=1\)是容易的,直接相邻的除一下即可。否则考虑询问除连续的\(5\)个数,分别为\(a_0,a_1,\cdots,a_4\)。首先特判掉存在\(a_i=0\)的情况,此时直接枚举\(s\)即可。我们先求出\(p\)的一个原根\(g\),设离散对数\(\log(x)=y\)表示\(g^y\equiv......
  • 可迭代对象、迭代器、生成器
    可迭代对象如果实现了__iter__方法,就认为对象是可迭代的.使用内置的iter函数可以获取迭代器的对象.检查对象x是否为迭代器,最好的方式是调用isinstance(x,abc.Iterator)序列都是可迭代的迭代器(Iterator):迭代器是一个对象,它实现了iter()和next()两个基本方法。ite......
  • 10.18Python基础迭代器生成器_函数式编程
    Python迭代器与生成器1.迭代器Iterator什么是迭代器迭代器是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器可以重复使用,而不会像列表那样在迭代时被修改。迭代器函数iter和next函数说明iter(iterable)从可迭代对象中返回一个迭代器,iterabl......