javascript - Node 回调 - 为什么这不起作用?

标签 javascript node.js callback

我目前正在尝试了解 Node 和回调,并尝试了对此代码的各种解决方案以使其正常工作,但是 param2 返回未定义。有人能告诉我为什么吗?以及如何解决这个问题?谢谢!

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);

最佳答案

这是因为 param2 在您调用回调函数的范围内未定义。要让 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);

关于javascript - Node 回调 - 为什么这不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34552746/

相关文章:

Javascript,回调函数中的变量范围之外?

javascript - node.js,setTimeout回调方法和 "this"

javascript - respond_to do |格式|在 Rails 5 应用程序中给出 "UnknownFormat in UsersController#show"

javascript - 在 Javascript 中添加包含特定字符串的字符串值

mysql - 将数据插入表时出现 tafal 错误后无法对查询进行排队

node.js - 如何解决 "Cannot read property ' should' of undefined"in chai?

javascript - 提交后如何关闭 fancybox iframe

javascript - 输入到输出不会改变结果中的单词

javascript - 如何让node.js服务器也发送js文件?

C++, SQLite - 指向字符串指针的指针