2011-01-15 3 views
6

ИТАК позволяет сказать, что у меня есть эта функция:JavaScript Обратный вызов после вызова функции

function a(message) { 
alert(message); 
} 

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

a("Hi.", function() {}); 

Я не уверен, как иметь обратный вызов внутри функции, которую я вызываю.

(я просто используя окно предупреждения в качестве примера)

Спасибо!

ответ

23

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

function a(message, cb) { 
    console.log(message); // log to the console of recent Browsers 
    cb(); 
} 

a("Hi.", function() { 
    console.log("After hi..."); 
}); 

Выход:

Hi. 
After hi... 
5

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

function a(message, cb) { 
    alert(message); 
    if (typeof cb === "function") { 
     cb(); 
    } 
} 
0

Вот код, который будет предупреждать сначала, а затем второй. Надеюсь, это то, что вы спросили.

function basic(callback) { 
    alert("first..."); 
    var a = "second..."; 
    callback(a); 
} 

basic(function (abc) { 
    alert(abc); 
}); 
Смежные вопросы