NodeJS类型错误:回调不是函数。

3
我有以下代码片段:
function fun1(callback){
  var result =  "result of function 1";
  callback(result)
};
function fun2(callback){
  var result =  "result of function 2";
  callback(result)
};

fun1(log); // displays "result of function 1"
fun2(log); // displays "result of function 2"
fun2(fun1(log)); // Type Error ...

当log是简单的函数时(即console.log(data) ...),我想知道为什么fun2(fun1(log))不像人们期望的那样显示“函数1的结果”。缺少什么?非常感谢 - Christian

1个回答

2

fun2希望得到一个函数。 你提供给它的是func1的结果(即“未定义”)。 意思是

var something = fun1(log);
fun2(something);

你好,需要在 fun2 中提供回调函数而非 undefined。以下是示例:

可以这样写:

function fun1(callback){
  var result =  "result of function 1";
  callback(result)
  return callback
};
function fun2(callback){
  var result =  "result of function 2";
  callback(result)
};

fun1(log); // displays "result of function 1"
fun2(log); // displays "result of function 2"
fun2(fun1(log));

谢谢Sagie的快速回复。这是将函数链接在一起的标准方法吗? - Christian68
有许多方法可以链接函数,例如返回一个函数,使用 Promise 等等... 没有一种特定的标准方式。 - sagie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接