今天看到这段代码,双箭头函数,我该怎么理解这段代码?求大神指点下。我还看了这篇帖子,还是有些细节没弄明白。这个fn到底是怎么定义的?怎么就成了回调函数(我现在的理解:f'n就是回调函数)?consttasks=arr.map(c=>(fn)=>{returno.writer.publish('crawling_penalty_tasks',c,(e)=>{if(e){console.log('pubtaskserror',c)}else{console.log('pubtaskssuccess',c)}fn()})})
2 回答

杨__羊羊
TA贡献1943条经验 获得超7个赞
//对你对代码进行拆分consttask=arr.map(c=>{return(fn)=>{returno.writer.publish('crawling_penalty_tasks',c,(e)=>{//if(){}else{}这里省略...fn();//执行fn})}})//task结构[fun1,fun2,...];也就是说task中都是一个个的可执行函数//task中函数对结构//例如:letfun1=(fn)=>{returno.writer.publish('crawling_penalty_tasks',c,(e)=>{//if(){}else{}这里省略...fn();//执行fn})}//所以上面代码的执行流程如下://1.获取task内部的函数letindex=0;//这个是角标lett=task[index];//t-->function是一个函数//执行tletres=t(()=>{//这个地方,就是上面fn的执行代码})//res-->o.writer.publish是这个函数的返回

开满天机
TA贡献1786条经验 获得超13个赞
consttasks=arr.map(function(c){varr=function(fn){returno.writer.publish('crawling_penalty_tasks',c,(e)=>{if(e){console.log('pubtaskserror',c)}else{console.log('pubtaskssuccess',c)}fn()})}returnr;});其实箭头函数转成普通函数,无非就是加function,并且减掉=>。
添加回答
举报
0/150
提交
取消