亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

chatGPT教我寫compose函數(shù)的詳細(xì)過(guò)程

瀏覽:161日期:2022-06-01 14:11:00
目錄
  • 0 前言
  • 1 結(jié)果
  • 2 chatGPT過(guò)程概略
  • 3 最后

0 前言

昨天希望實(shí)現(xiàn)一個(gè)通用的compose函數(shù),能夠接受同步函數(shù)與異步函數(shù),并且通過(guò)異步函數(shù)同步執(zhí)行來(lái)是吸納compose函數(shù)中的所有參數(shù)函數(shù)能順序執(zhí)行。
比如compose(asyncFun3,syncFun2,asyncFun1,syncFunc0),四個(gè)函數(shù)能從右到作順序執(zhí)行,并且完成參數(shù)從右向左的傳遞和處理。
昨兒花了很多,搜索到的結(jié)果質(zhì)量很低,于是今天試了試chatGPT。
只能說(shuō),chatGPT牛逼!
當(dāng)然,給出的答案有時(shí)會(huì)是錯(cuò)的,需要甄別。

1 結(jié)果

給出結(jié)果的示例代碼,我這兒直接用純js,并且全放在vue的mounted中了,可以自行按需修改——

mounted() {    // 定義一個(gè)通用的 compose 函數(shù)    // 這個(gè)可以提取到公共函數(shù)去    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();  }

運(yùn)行結(jié)果如下——

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

2 chatGPT過(guò)程概略

可以看到,chatGPT會(huì)給出直接的代碼實(shí)現(xiàn),并給出一個(gè)示例。此外,還會(huì)對(duì)這個(gè)代碼示例進(jìn)行解釋說(shuō)明。

而當(dāng)我提出希望使用async/await來(lái)優(yōu)化代碼時(shí),它也能做到代碼的修改

但是在代碼生成過(guò)程中,它沒有使用compose函數(shù),于是讓它再生成一份

可以發(fā)現(xiàn),在這里,chatGPT出現(xiàn)了第一次較大的錯(cuò)誤,它給出的代碼無(wú)法運(yùn)行。
但是可以將報(bào)錯(cuò)信息告知chatGPT,此時(shí),它又能主動(dòng)地修復(fù)bug,給出一份新的可運(yùn)行的代碼。

不過(guò)此時(shí),chatGPT丟失了一開始定義的compose函數(shù),于是要求其用compose方法來(lái)實(shí)現(xiàn)

但是我還有一些沒懂的,于是繼續(xù)提出問(wèn)題,chatGPT繼續(xù)給出詳細(xì)的解釋

前面只是做了console.log,我希望它添加參數(shù)在函數(shù)間傳遞

這里出現(xiàn)了第二處較大的問(wèn)題
這里的代碼是沒有開頭我自己添加的那個(gè)Sync Function 2的,所以實(shí)際上返回值應(yīng)是150,也就是解釋中的數(shù)值,而非160

這里出現(xiàn)了一處小問(wèn)題,syncFuncnum+10未生效確實(shí)是150160區(qū)別的原因,但是和num+50的解釋是無(wú)關(guān)的

指出這個(gè)邏輯錯(cuò)誤后,它重新生成了一份更加詳細(xì)的正確運(yùn)行過(guò)程解釋

3 最后

不得不說(shuō),chatGPT是真的牛逼
雖然在語(yǔ)意邏輯、代碼生成、代碼運(yùn)行等方面可能還存在一些問(wèn)題
但是已經(jīng)非常好用了,遠(yuǎn)遠(yuǎn)勝于一般的傳統(tǒng)搜索引擎
可持續(xù)對(duì)話,搜索條件可持續(xù)添加,理解模糊語(yǔ)意,可進(jìn)行代碼定制化,代碼按需優(yōu)化,代碼問(wèn)題修復(fù)…
而且還禮貌客氣,解釋詳細(xì),不厭其煩,奈斯
今天是第一天注冊(cè)chatgpt,第一次使用chatgpt,所以此文簡(jiǎn)要做個(gè)記錄,寫這篇文章都讓我感覺自己就是個(gè)知識(shí)的搬運(yùn)工了…
所以,以后有問(wèn)題,為何不問(wèn)問(wèn)萬(wàn)能的chatgpt呢?

到此這篇關(guān)于chatGPT教我寫compose函數(shù)的文章就介紹到這了,更多相關(guān)chatGPT寫compose函數(shù)內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: JavaScript
主站蜘蛛池模板: 日本高清在线一区二区三区 | 男人综合网 | 我要看欧美精品一级毛片 | 国产精品久久网 | 国产黄色免费网站 | 日韩在线视频免费观看 | 国产性色视频在线高清 | 国产成人精品综合网站 | 欧美日韩国产超高清免费看片 | 日韩中文字幕久久久经典网 | 国产日本特黄特色大片免费视频 | 精品久久一区二区 | 欧美在线观看a | 国产一级片免费观看 | 亚洲成人福利在线观看 | 丁香五月网久久综合 | 在线免费国产 | 国产美女免费网站 | 91av综合| 国产丝袜制服在线 | 国产欧美日韩一区 | 欧美特级毛片a够爽天狼影院 | 日本精品中文字幕在线播放 | 成人欧美午夜视频毛片 | 欧美特黄a级高清免费看片 欧美特黄a级猛片a级 | 欧美成人午夜剧场 | 亚洲欧洲国产视频 | 欧美色欧美亚洲高清在线视频 | 麻豆黄色 | 精品视频一区二区三区在线观看 | 一集毛片| 国产xxxx99真实实拍 | 欧美毛片| 国产欧美一区二区成人影院 | 欧美性色黄大片a级毛片视频 | 麻豆果冻传媒精品二三区 | 精品国产精品久久一区免费式 | 91在线日本 | 男人色网站 | 欧美日韩一区二区高清视 | 中国一级特黄真人毛片免 |