今天看到这段代码,双箭头函数,我该怎么理解这段代码?求大神指点下。我还看了这篇帖子,还是有些细节没弄明白。这个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贡献1818条经验 获得超8个赞
//对你对代码进行拆分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是这个函数的返回
添加回答
举报
0/150
提交
取消