我的编程空间,编程开发者的网络收藏夹
学习永远不晚

chatGPT教我写compose函数的详细过程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

chatGPT教我写compose函数的详细过程

0 前言

昨天希望实现一个通用的compose函数,能够接受同步函数与异步函数,并且通过异步函数同步执行来是吸纳compose函数中的所有参数函数能顺序执行。
比如compose(asyncFun3,syncFun2,asyncFun1,syncFunc0),四个函数能从右到作顺序执行,并且完成参数从右向左的传递和处理。
昨儿花了很多,搜索到的结果质量很低,于是今天试了试chatGPT。
只能说,chatGPT牛逼!
当然,给出的答案有时会是错的,需要甄别。

1 结果

给出结果的示例代码,我这儿直接用纯js,并且全放在vue的mounted中了,可以自行按需修改——

mounted() {
    // 定义一个通用的 compose 函数
    // 这个可以提取到公共函数去
    const compose = (...fns) => {
      return fns.reduceRight((prevFn, nextFn) => {
        return async (...args) => {
          return nextFn(await prevFn(...args));
        };
      });
    };

    const asyncFunc1 = () => {
      return new Promise(resolve => {
        setTimeout(() => {
          console.log('Async Function 1');
          resolve(100);
        }, 1000);
      });
    };

    const asyncFunc2 = num => {
      return new Promise(resolve => {
        setTimeout(() => {
          console.log('Async Function 2');
          resolve(num + 50);
        }, 500);
      });
    };

    const syncFunc = num => {
      console.log(num)
      console.log('Sync Function');
      return num + 10;
    };

    const syncFunc2 = num => {
      console.log(num)
      console.log('Sync Function 2');
      return num + 10;
    };

    const runAllAsyncFunctions = compose(asyncFunc2, syncFunc2, asyncFunc1, syncFunc);

    const run = async () => {
      const result = await runAllAsyncFunctions();
      console.log('All functions completed');
      console.log('Result:', result);
    };

    run();

  }

运行结果如下——

undefined
Sync Function
Async Function 1
100
Sync Function 2
Async Function 2
All functions completed
Result: 160

2 chatGPT过程概略

可以看到,chatGPT会给出直接的代码实现,并给出一个示例。此外,还会对这个代码示例进行解释说明。

而当我提出希望使用async/await来优化代码时,它也能做到代码的修改

但是在代码生成过程中,它没有使用compose函数,于是让它再生成一份

可以发现,在这里,chatGPT出现了第一次较大的错误,它给出的代码无法运行。
但是可以将报错信息告知chatGPT,此时,它又能主动地修复bug,给出一份新的可运行的代码。

不过此时,chatGPT丢失了一开始定义的compose函数,于是要求其用compose方法来实现

但是我还有一些没懂的,于是继续提出问题,chatGPT继续给出详细的解释

前面只是做了console.log,我希望它添加参数在函数间传递

这里出现了第二处较大的问题
这里的代码是没有开头我自己添加的那个Sync Function 2的,所以实际上返回值应是150,也就是解释中的数值,而非160

这里出现了一处小问题,syncFuncnum+10未生效确实是150160区别的原因,但是和num+50的解释是无关的

指出这个逻辑错误后,它重新生成了一份更加详细的正确运行过程解释

3 最后

不得不说,chatGPT是真的牛逼
虽然在语意逻辑、代码生成、代码运行等方面可能还存在一些问题
但是已经非常好用了,远远胜于一般的传统搜索引擎
可持续对话,搜索条件可持续添加,理解模糊语意,可进行代码定制化,代码按需优化,代码问题修复…
而且还礼貌客气,解释详细,不厌其烦,奈斯
今天是第一天注册chatgpt,第一次使用chatgpt,所以此文简要做个记录,写这篇文章都让我感觉自己就是个知识的搬运工了…
所以,以后有问题,为何不问问万能的chatgpt呢?

到此这篇关于chatGPT教我写compose函数的文章就介绍到这了,更多相关chatGPT写compose函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

chatGPT教我写compose函数的详细过程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

chatGPT教我写compose函数的详细过程

这篇文章主要介绍了chatGPT教我写compose函数,文中给大家介绍了chatGPT过程概略,本文结合实例代码图文给大家讲解的非常详细,需要的朋友可以参考下
2023-02-23

ChatGPT帮我自动编写Python爬虫脚本的详细过程

ChatGPT是一种基于大语言模型的生成式AI,换句话说它可以自动生成类似人类语言的文本,把梳理好的有逻辑的答案呈现在你面前,这完全不同于传统搜索工具,这篇文章主要介绍了ChatGPT帮我自动编写Python爬虫脚本,需要的朋友可以参考下
2023-02-16

Oracle存储过程与函数的详细使用教程

目录一、存储过程1、存储过程的创建2、存储过程的调用及删除3、存储过程的使用4、存储过程的查询二、函数1、函数的创建2、函数的调用与删除3、函数的使用4、函数的查询补充:存储过程与存储函数的区别和联系总结一、存储过程存储过程是一种命名的P
2022-07-18

C/C++读写JSON数据的详细过程记录

JSON文件无论是在web开发、客户端开发、服务端等开发中都是应用比较广泛的的第一种轻量级数据交换格式,非常方便阅读和编写,下面这篇文章主要给大家介绍了关于C/C++读写JSON数据的详细过程,需要的朋友可以参考下
2023-05-17

Excel中Sumif函数的使用方法详细图片教程

很抱歉,我无法提供图片。但是,我可以向您提供文字说明。Sumif函数是用于计算满足指定条件的单元格范围的总和的函数。语法如下:SUMIF(range, criteria, [sum_range])参数解释:- range:要检查的单元格范围
2023-09-20

微信小程序setInterval定时函数新手使用的超详细教程

平时开发中为实现倒计时效果可以使用setInterval即可,下面这篇文章主要给大家介绍了关于微信小程序setInterval定时函数新手使用的超详细教程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

编程热搜

目录