首页 > 作文

回调函数js利用箭头函数(js中回调函数的用法)

更新时间:2023-04-05 14:47:45 阅读: 评论:0

回调函数是每个前端程序员都应该知道的概念之一。回调可用于数组、计时器函数、promi、事件处理中。

本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步。

回调函数

首先写一个向人打招呼的函数。

只需要创建一个接受 name参数的函数 greet(name)。这个函数应返回打招呼的消息:

永远英语如果向很多人打招呼该怎么办?可以用特殊的数组方法 array.map()可以实现:

persons.map(greet)获取 persons数组的所有元素,并分别用每个元素作为调用参数来调用 greet()

函数:`greet(‘cristina’), greet(‘ana’)。

有意思的是 persons.map(greet)方法可以接受 greet()函数作为参数。这样 greet()就成了回调函数

persons.map(greet)是用另一个函数作为参数的函数,因此被称为高阶函数

回调函数作为高阶函数的参数,高阶函数通过调用回调函数来执行操作。

重要的是高阶函数负责调用回调,并为其提供正确的参数。

在前面的例子中,高阶函数 persons.map(greet)负责调用 greet()函数,并分别把数组中所有的元素 ‘cristina’和 ana ‘作为参数。

这就为识别回调提供了一条简单的规则。如果你定义了一个函数,并将其作参数提供给另一个函数的话,那么这就创建了一个回调。

你可以自己编写使用回调的高阶函数。下面是 array.map()方法的等效版本:

map(array,callback)是一个高阶函数,因为它用回调函数作为参数,然后在其主体内部调用该回调函数:callback(item)。

注意,常规函数(用关键字 function定义)或箭头函数(用粗箭头 =>定义)同样可以作为回调使用。

同步回调

回调的调用方式有两种:同步异步回调。

同步回调是“阻塞”的:高阶函数直到回调函数完成后才继续执行。

例如,调用 map()和 greet()函数。

其中 greet()是同步回调。

同步回调的步骤:

高阶函数开始执行:’map() starts’回调函数执行:’greet() called’最后高阶函数完成它自己的执行过程:’map() completed’

同步回调的例子

许多原生 javascript 类型的方法都使用同步回调。

最常用的是 array 的方法,例如:

array.map(callback), array.foreach(callback), array.find(callback), array.filter(callback),

array.reduce(callback,init)

字符串类型的 string.replace(call防雷知识back)方法也能接受同步执行的回调:

异步回调

异步回调是“非阻塞的”:高阶函数无需等待回调完成即可完成其执行。高阶函数可确保稍后在特定事件上执行回调。

在以下的例子中,later()函数的执行延迟了 2 秒:

later()是一个异步回调,因为 ttimeout(later,2000)启动并完成了执行,但是 later()在 2 秒后执行。

异步调用回调的步骤:

高阶函数开始执行:’ttimeout()starts’高阶函数完成其执行: ‘ttimeout() completed’回调函数在 2 秒钟后执行: ‘later() called’

异步回调的例子

计时器函数异步调用回调:

dom 事件侦听器还异步调用事件处理函数(回调函数的子类型):

4.异步回调函数与异步函数

在函数定义之前加上特殊关键字 async会创建一个异步函数:

fetchurnames()是异步的,因为它以 async为前缀。函数

await fetch(‘
/d/file/titlepic/urs github 上获取前5个用户 。然后从响应对象中提取 json 数据:a创新名言waitresp.json()。

异步函数是 promi 之上的语法糖。当遇到表达式为什么男人早上会硬 await<promi>(调用 fetch()会返回一个promi)时,异步函数会暂停执行,直到 promi 被解决。

异步回调函数和异步函数是不同的两个术语。

异步回调函数由高阶函数以非阻塞方式执行。但是异步函数在等待 promi(await<promi>)解析时会暂停执行。

但是你可以把异步函数用作异步回调!

让我们把异步函数 fetch urnames()设鲜重为异步回调,只需单击按钮即可调用:

总结

回调是一个可以作为参数传给另一个函数(高阶函数)执行的函数。

回调函数有两种:同步和异步。

同步回调是阻塞的。

异步回调是非阻塞的。

最后考考你:ttimeout(callback,0)执行 callback时是同步还是异步的?

本文发布于:2023-04-05 14:47:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/5493fde788ceb826079452c8acc96925.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:回调函数js利用箭头函数(js中回调函数的用法).doc

本文 PDF 下载地址:回调函数js利用箭头函数(js中回调函数的用法).pdf

标签:函数   回调   高阶   参数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图