cupidanish Ответов: 2

Пример 1 не является обратным вызовом, потому что я не передал функцию в качестве аргумента?


в чем разница между примером 1 и примером 2:

Пример 1:
function a () {
    console.log("A is running");
    b();
    
}

 function b () {
    console.log("B is running")
}

a();

Пример 2:
const fun1 = function a (callback) {
    console.log("A is running");
    callback();   
}

const fun2 = function b() {
    console.log("B is running");
}

fun1( fun2 );

результат: выполняется
B работает

почему мы передаем функцию в качестве параметра, когда мы можем это сделать? Или это происходит из-за разницы между определением функции и выражением функции?
кто-нибудь может мне объяснить, пожалуйста?
а в Примере 2 какая из них является функцией обратного вызова
fun1 или fun2

Что я уже пробовал:

Я изучаю функцию обратного вызова. поэтому я просто вспомнил пример 1.

2 Ответов

Рейтинг:
0

F-ES Sitecore

Разница в том, что в первом примере "а" может только тогда перейти к вызову "в", поскольку вызов "в" жестко закодирован в "а". Во втором примере вызывающий код решает, какую функцию вызывает "а", поэтому это может быть "в", это может быть "с", это может быть даже null, если он не хочет, чтобы "а" выполнял последующий вызов.


Рейтинг:
0

Gomehere Blogger

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

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

Пример :

function a(cb){
   var a = 10;
   var b= 10; 
   setTimeout(function(){cb(c)},2000);
   c = a+b;
}

a(result=>{
  if(result){
   console.log(result)
}
})