javascript什么叫回调函数
在javascript中,回调函数就是一个被作为参数传递的函数。函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A,函数A就叫做回调函数;如果没有名称(函数表达式),就叫做匿名回调函数。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
什么是回调函数(Callback)
在JavaScript中,函数是对象。 因此,函数可以将函数作为参数,并且可以由其他函数返回。 执行此操作的函数称为高阶函数。 作为参数传递的任何函数都称为回调函数。
回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。
为什么我们需要回调?
出于一个非常重要的原因-JavaScript是一种事件驱动语言。这意味着JavaScript不会继续等待响应,而是会在侦听其他事件时继续执行。让我们看一个基本的例子:
function first(){ console.log(1); } function second(){ console.log(2); } first(); second();
如你所料,首先执行函数,然后执行第二函数,将以下内容记录到控制台:
// 1 // 2
到目前为止一切都很好。
但是,如果函数包含无法立即执行的某些代码怎么办? 例如,我们必须先发送请求然后等待响应的API请求? 为了模拟此动作,将使用setTimeout,它是一个JavaScript函数,将在设置的时间后调用该函数。 我们将功能延迟500毫秒以模拟API请求。 我们的新代码将如下所示:
function first(){ // Simulate a code delay 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()的响应。
那为什么给你看这个呢?因为你不能在一个函数后调用另一个另一个函数,而又希望它们以正确的顺序执行。回调是一种确保某些代码在其他代码已经完成执行之前不会执行的方法。
创建一个回调函数
好了,话不多说,让我们创建一个回调!
首先,打开您的Chrome开发者控制台(Windows:Ctrl + Shift + J)(Mac:Cmd + Option + J),然后在控制台中键入以下函数声明:
function doHomework(subject) { alert(`Starting my ${subject} homework.`); }
现在让我们添加回调-作为doHomework()函数中的最后一个参数,我们可以传入回调。然后在对doHomework()的调用的第二个参数中定义回调函数。
function doHomework(subject, callback) { alert(`Starting my ${subject} homework.`); callback(); } doHomework('math', function() { alert('Finished my homework'); });
可以看到,如果你在控制台中输入上述代码,则会收到两个alert:“starting homework”alert,然后是“finished homework”alert。
但是,并非总是必须在我们的函数调用中定义回调函数。它们可以在我们的代码的其他地方定义,如下所示:
function doHomework(subject, callback) { alert(`Starting my ${subject} homework.`); callback(); } function alertFinished(){ alert('Finished my homework'); } doHomework('math', alertFinished);
此示例的结果与前面的示例完全相同,但是设置略有不同。我们可以看到,在doHomework()函数调用期间,我们已将alertFinished函数定义作为参数传递。
一个真实的例子
我们尝试调用Twitter的API。 向API发出请求时,必须等待响应,然后才能对该响应采取行动。 这是真实回调的一个很好的例子。 请求长这样:
T.get('search/tweets', params, function(err, data, response) { if(!err){ // This is where the magic will happen } else { console.log(err); } })
T.get意味着我们正在向Twitter发送获取请求
此请求中包含三个参数:“ search / tweets”(这是我们的请求的路由),params(这是我们的搜索参数)和一个匿名函数(即我们的回调)。
回调在这里很重要,因为我们需要等待服务器的响应才能继续执行代码。 我们不知道我们的API请求是否会成功,因此在通过get请求将参数发送到search/tweets后,我们等待。 一旦Twitter响应后,将调用我们的回调函数。 Twitter会向我们发送错误(错误)对象或响应对象。 在回调函数中,我们可以使用if()语句来确定我们的请求是否成功,然后对新数据采取相应措施。
【相关推荐:javascript学习教程】
Atas ialah kandungan terperinci javascript什么叫回调函数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Kaedah menulis fungsi panggil balik java ialah: 1. Panggilan balik antara muka, tentukan antara muka, yang mengandungi kaedah panggil balik, gunakan antara muka sebagai parameter di mana panggilan balik perlu dicetuskan, dan panggil kaedah panggil balik pada masa yang sesuai 2. Panggilan balik kelas dalam tanpa nama , anda boleh menggunakan kelas dalam tanpa nama untuk melaksanakan fungsi panggil balik untuk mengelakkan daripada membuat kelas pelaksanaan tambahan 3. Panggilan balik ungkapan Lambda Dalam Java 8 dan ke atas, anda boleh menggunakan ungkapan Lambda untuk memudahkan penulisan fungsi panggil balik.

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Pengenalan kepada penulisan asas dan penggunaan fungsi panggil balik Java: Dalam pengaturcaraan Java, fungsi panggil balik adalah corak pengaturcaraan biasa Melalui fungsi panggil balik, kaedah boleh dihantar sebagai parameter kepada kaedah lain, dengan itu mencapai panggilan tidak langsung kaedah tersebut. Penggunaan fungsi panggil balik adalah sangat biasa dalam senario seperti didorong peristiwa, pengaturcaraan tak segerak dan pelaksanaan antara muka. Artikel ini akan memperkenalkan penulisan asas dan penggunaan fungsi panggil balik Java, dan memberikan contoh kod khusus. 1. Definisi fungsi panggil balik Fungsi panggil balik ialah fungsi khas yang boleh digunakan sebagai parameter
