扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章给大家分享的是有关js回调的案例分析的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
创新互联主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销推广、网站程序开发、HTML5响应式成都网站建设、手机网站制作设计、微商城、网站托管及网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为效果图设计行业客户提供了网站开发服务。在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用。既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回。因为函数是第一类对象,我们可以在Javascript使用回调函数。下面我们一起了解一下回调。
简单地讲:回调是指在另一个函数执行完成之后被调用的函数
稍复杂地讲: 在 JavaScript 中,函数也是对象。因此,函数可以传入函数作为参数,也可以被其他函数返回。这样的函数称为高阶函数。被作为参数传入的函数就叫做回调函数。
下面说说为什么我们需要回调?
有一个非常重要的原因——JavaScript是事件驱动的语言。这意味着,JavaScript不会因为要等待一个响应而停止当前运行,而是在监听其他事件时继续执行。
来看一个基本的例子:
function first(){ console.log(1); } function second(){ console.log(2); } first(); second();
正如你所料,first 函数首先被执行,随后 second 被执行 —— 控制台输出下面内容:
// 1 // 2
但如果函数 first 包含某种不能立即执行的代码会如何呢?
例如我们必须发送请求然后等待响应的 API 请求?为了模拟这种状况,我们将使用 setTimeout,它是一个在一段时间之后调用函数的 JavaScript 函数。我们将函数延迟 500 毫秒来模拟一个 API 请求,新代码长这样:
function first(){ // 模拟代码延迟 setTimeout( function(){ console.log(1); }, 500 ); } function second(){ console.log(2); } first(); second();
现在理解 setTimeout() 是如何工作的并不重要,重要的是你看到了我们已经把 console.log(1); 移动到了 500 秒延迟函数内部。那么现在调用函数会发生什么呢?
first(); second(); // 2 // 1
即使我们首先调用了 first() 函数,我们记录的输出结果却在 second() 函数之后。
这不是 JavaScript 没有按照我们想要的顺序执行函数的问题,而是 JavaScript 在继续向下执行 second() 之前没有等待 first() 响应的问题。
所以为什么给你看这个?
因为你不能一个接一个地调用函数并希望它们按照正确的顺序执行。
回调正是确保一段代码执行完毕之后再执行另一段代码的方式。
感谢各位的阅读!关于js回调的案例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流