В настоящее время я пытаюсь понять Node и обратные вызовы и пробовал различные решения этого кода, чтобы заставить его работать, однако param2 возвращается undefined. Кто-нибудь может сказать мне, почему? И как это исправить? Спасибо!

function getPage(callback) {

  url = 'http://www.google.com';

  if (url) {
    url = url;
  } else {
    console.log('There was an error. No URL submitted');
  }

  callback(url, param2);
}

function CB(url, param2) {
console.log(`The URL of the page requested was ${url} and the added argument          was ${param2}`);
}

 getPage(CB);

Joshua H

Ответов: 2

Ответы (2)

Это потому, что param2 равно undefined в области, в которой вы вызываете функцию обратного вызова. Чтобы вернуть param2, убедитесь, что param2 инициализирован в getpage ()

function getPage(callback) {

  url = 'http://www.google.com';
  // **make sure param2 is defined**
  var param2 = "param2 value"

  if (url) {
    url = url;
  } else {
    console.log('There was an error. No URL submitted');
  }

  callback(url, param2);
}

function CB(url, param2) {
console.log(`The URL of the page requested was ${url} and the added argument was ${param2}`);
}

 getPage(CB);

В функции getPage определите param2 и передайте его

2022 WebDevInsider