2014-01-25 2 views
0

Я начал недавно, чтобы узнать о javascript, и я видел много функций обратного вызова. Каковы эти функции, почему они используются и зачем? Я буду рад получить действительно базовое определение, потому что я хочу понять его, потому что понял, что это действительно важно в js.Может ли кто-нибудь объяснить мне функции обратного вызова?

спасибо :)

ответ

0

Как следует из названия, функции обратного вызова анонимные или именованные функции, которые передаются в качестве аргументов другой функции , или вызов AJAX и т. д. и будут выполняться после того, как определенное действие будет завершено механизмом javascript.

Для примера. Вы можете передать функцию обратного вызова, которая будет выполняться после вызова AJAX с данными. Ill использование JQuery для простоты:

$.ajax({ 
    url: "/my-api-path/", 
    data: myParams 
}).done(myCallback); 

Здесь myCallback это функция, которая будет выполняться один раз завершает вызов AJAX. Функция обратного вызова в этом случае будет вызываться с объектом ответа, возвращаемым вызовом AJAX. Обратите внимание, как этот обратный вызов был передан как аргумент метода .done, предоставленного API jQuery AJAX.

В другом примере,

setTimeout( 
function() { 
alert("Im inside a callback function!"); 
}, 2000); 

Здесь функция, которая содержит предупреждение является первым из двух аргументов, переданных методу SetTimeout в JavaScript. Второй - это количество миллисекунд, после которого эта функция должна быть выполнена. Поскольку эта функция не имеет имени, она называется анонимной.

тот же код может быть переписан как:

var myCallback = function(){ 
    alert("Im inside a callback"); 
}; 
setTimeout(myCallback, 2000); 

Callbacks выполняются немедленно, когда действие завершается. Поэтому после того, как двигатель встретит оператор setTimeout, он сохранит функцию myCallback в ссылке, а затем продолжит выполнение после инструкции setTimeout. По истечении 2 секунд он выполнит свое время для выполнения обратного вызова, поэтому выполнение перейдет к обратному вызову.Затем будет выполнено предупреждение, функция обратного вызова завершится, и выполнение продолжит работу с того места, где оно было, когда прошло 2 секунды, и двигатель перешел на обратный вызов.

Надеюсь, это объясняет, как работают обратные вызовы.

0

Как мы знаем, мы можем передать другой тип переменных, объект в качестве параметра функции. В javascript, если функция передается как параметр, она называется функцией обратного вызова.

Функция обратного вызова вызывается на какое-либо событие/условие, пока программа не сможет выполнить другой код. Функция обратного вызова будет выполняться только тогда, когда произойдет конкретное событие или выполняется конкретное условие.

+0

Что вы подразумеваете под событиями? – PeeHaa

+0

событий означает некоторое состояние. –

2

Функция обратного вызова - это функция, которую вы передаете в качестве аргумента другой функции.

Функция обратного вызова вызывается функцией, через которую вы передаете ее (или далее вниз по цепочке).

Это обычно делается, когда функция выполняет что-то асинхронное, поэтому вы не можете использовать возвращаемое значение.

Основных примеров являются для событий:

// call someFunction when the document is loaded 
addEventListener('load', someFunction); 

или связанное время звонков:

// call someFunction after 30 seconds have elapsed 
setTimeout(someFunction, 30000); 
Смежные вопросы