Вы бы назвали это так (передав функцию обратного вызова в качестве аргумента):
myfunction(myCallbackFn);
Обратите внимание, что после имени функции отсутствуют круглые скобки при передаче ссылки на функцию в качестве аргумента. Это не вызывает функцию, а просто передает ссылку на нее, которая затем может быть вызвана изнутри вашей пользовательской функции.
Вы бы определили свою функцию и затем вызвали в ней функцию обратного вызова следующим образом:
function myfunction(cb) {
cb(arg1, arg2);
}
Обратите внимание, что существует множество методов фактического вызова функции обратного вызова из вашей пользовательской функции. Если вам просто нужно вызвать его как обычно и не беспокоиться о аргументе this
, вы можете просто использовать:
cb();
Если вы хотите установить аргумент this
на что-то, вы можете использовать это:
cb.call(thisArg, arg1, arg2);
Если вы хотите передать ваши текущие аргументы или передать массив аргументов и установить аргумент this
, вы должны использовать это:
cb.apply(thisArg, argArray);
Ссылки на .call()
и .apply()
.
Ваш текущий код содержит ошибку javascript в этой области:
test(rand_gyumolcs, link, callback){
callback();
};
Это не разрешенный Javascript. Я не знаю, что вы пытаетесь сделать, но это выглядит как половина объявления функции и половина вызова функции. Если вы просто хотите вызвать тестовую функцию, вы просто должны использовать это:
test(rand_gyumolcs, link, callback);
Внутри теста, если вы хотите, чтобы функция обратного вызова вызывалась после завершения анимации, тогда вам нужно было бы подключить функцию завершения анимации и затем вызвать обратный вызов.