Все, что мне нужно сделать, это выполнить функцию обратного вызова, когда закончится выполнение моей текущей функции.
function LoadData()
{
alert('The data has been loaded');
//Call my callback with parameters. For example,
//callback(loadedData , currentObject);
}
Потребитель для этой функции должен быть таким:
object.LoadData(success);
function success(loadedData , currentObject)
{
//Todo: some action here
}
Как мне это реализовать?
javascript
Амгад Фахми
источник
источник
object.LoadData(success)
вызов должен быть после того,function success
как определено. В противном случае вы получите сообщение о том, что функция не определена.Ответы:
На самом деле, ваш код будет работать в основном как есть, просто объявите ваш обратный вызов в качестве аргумента, и вы можете вызвать его напрямую, используя имя аргумента.
Основы
Это вызов
doSomething
, который вызоветfoo
, который предупредит "все идет сюда".Обратите внимание, что очень важно передать функцию reference (
foo
), а не вызывать функцию и передавать ее результат (foo()
). В своем вопросе вы делаете это правильно, но на это просто стоит обратить внимание, потому что это распространенная ошибка.Более продвинутые вещи
Иногда вы хотите вызвать обратный вызов, чтобы он увидел конкретное значение для
this
. Вы можете легко сделать это с помощьюcall
функции JavaScript :Вы также можете передать аргументы:
Иногда полезно передавать аргументы, которые вы хотите передать, в виде массива, а не по отдельности. Вы можете использовать
apply
для этого:источник
setTimeout()
. Ответ - завернуть обратный вызов в закрытие:doSomething(function(){foo('this','should','work')})
Рекомендуется убедиться, что обратный вызов является реальной функцией, прежде чем пытаться ее выполнить:
источник
if(typeof callback == "function")
будет иметь тот же результат.callback &&
...Мои 2 цента То же самое, но разные ...
источник
источник
==============================================
==============================================
Результат:
источник
Если вы хотите выполнить функцию, когда что-то сделано. Одним из хороших решений является прослушивание событий. Например, я буду реализовать
Dispatcher
, аDispatcherEvent
класс с ES6, то:Диспетчер:
DispatcherEvent:
Удачного кодирования!
p / s: мой код отсутствует обработать некоторые исключения ошибок
источник
источник
При вызове функции обратного вызова мы можем использовать ее, как показано ниже:
consumingFunction(callbackFunctionName)
Пример:
Это Codepend с полным примером.
источник
Некоторые из ответов, хотя и правильные, могут быть немного сложными для понимания. Вот пример с точки зрения непрофессионала:
Обратный вызов означает, что «Jake» всегда добавляется пользователям перед отображением списка пользователей с помощью
console.log
.Источник (YouTube)
источник
Пытаться:
Функции первого класса в JavaScript ; Вы можете просто передать их.
источник