Выполнение функции CallBack в javascript? - PullRequest
0 голосов
/ 18 июня 2020
function nestedFunction() {
  console.log('nested function');
}
function firstFunction(cb) {
  cb(nestedFunction());
}

function resetRouter() {
  setTimeout(() => {
    console.log('hello');
    firstFunction(() => {
      console.log('inside oye oyr');
    });
  }, 1000);
}

resetRouter();

Это моя функция. При этом выполняется первый сброс маршрутизатора. Внутри resetRouter через 1 секунду выполняется моя первая функция. Первая функция принимает в качестве параметра функцию обратного вызова. До сих пор мне стало яснее. Но когда вызывается firstFunction, она получает cb в качестве параметра, мы выполняем callBackfunction и внутри этой функции обратного вызова мы передаем вложенную функцию. Итак, здесь сначала выполняется наша вложенная функция, а затем выполняется cb (callBack). Итак, как это выполняется. Кто-нибудь, пожалуйста, объясните его выполнение более понятным и простым способом.

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Вот что происходит:

1: resetRouter gets called.
2: In 1 second:
   a. resetRouter logs "hello" in the console.
   b. call `firstFunction` with the argment - () => console.log("inside oye oyr")
      note: the callback function doesn't get executed in this step.

   c. nestedFunction gets called.
   d. nestedFunction logs "nested function"
   e. the callback in `b` gets called with one argument - undefined
   f. finally, `b` logs "inside oye oyr" in the console.

Вывод:

hello           // from resetRouter
nested function // from nestedFunction
inside oye oyr  // from firstFunction callback.
1 голос
/ 18 июня 2020
function firstFunction(cb) {
  cb(nestedFunction());
}

Вы не прошли nestedFunction. Вы передаете значение, полученное в результате вызова nestedFunction (см. () после него). Если вы просто хотите передать ссылку на nestedFunction в cb, просто передайте имя.

function firstFunction(cb) {
  cb(nestedFunction);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...