Использовать вложенные обратные вызовы - PullRequest
0 голосов
/ 27 января 2019

В настоящее время я пытаюсь выяснить, как работают вложенные обратные вызовы в Javascript.Но на моем примере консоль ничего не печатает.Пример довольно простой - следует печатать буквы: abc.

Code

function getA() {
  return setTimeout(() => 'a', 1000);
}

function getB() {
  return setTimeout(() => 'b', 2000);
}

function getC() {
  return setTimeout(() => 'c', 3000);
}

function handleWithCallback(callback1, callback2, callback3) {
  callback1(a =>
    callback2(b =>
      callback3(c => console.log(a + b + c))
    )
  );
}

handleWithCallback(getA, getB, getC);

1 Ответ

0 голосов
/ 27 января 2019

В handleWithCallback вы вызываете функции callback, передавая аргументы, но обратите внимание, что ваши действительные функции getX обратного вызова не используют этот аргумент.Они должны взять функцию обратного вызова в качестве аргумента и вызвать ее.

Примечание: я сократил задержки, чтобы вам не пришлось долго ждать, чтобы увидеть результат:)

function getA(cb) {
  return setTimeout(() => cb('a'), 100);
}

function getB(cb) {
  return setTimeout(() => cb('b'), 200);
}

function getC(cb) {
  return setTimeout(() => cb('c'), 300);
}

function handleWithCallback(callback1, callback2, callback3) {
  callback1(a =>
    callback2(b =>
      callback3(c => console.log(a + b + c))
    )
  );
}

handleWithCallback(getA, getB, getC);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...