Nodejs在回调函数中给出回调函数

时间:2016-07-01 16:00:56

标签: node.js

我想做那样的事情:

callbackfunc=function(client, id, callback){
    callbackfunc2({'id': id}, myfunc);
}

var myfunc = function(err,result){
     callback(new Error("Ein Fehler"));
}


callbackfunc(client, 38373,function(err, data){
            console.log("Here:"+data+" Error:"+err);
});

如何在myfunc中提供回调功能?我总是得到回调不是一个功能。如果我以他的方式写它是有效的。我不明白为什么当我有一个特殊功能时它不起作用。

callbackfunc=function(client, id, callback){
    callbackfunc2({'id': id}, function(err,result){
     callback(new Error("Ein Fehler"));
});

callbackfunc(client, 38373,function(err, data){
            console.log("Here:"+data+" Error:"+err);
});

1 个答案:

答案 0 :(得分:1)

如果您想在单独的函数中使用callback,则必须:

  1. 将其作为参数传递给myfunc
    1. myfunc可用的范围内声明callback
    2. 它适用于此示例:

      callbackfunc=function(client, id, callback){
          callbackfunc2({'id': id}, function(err,result){
           callback(new Error("Ein Fehler"));
      });
      

      因为您在定义它的范围内调用callback。记住函数参数只能在定义它们的函数块中使用。它们在该函数之外不可用,除非您将它们作为参数传递给其他范围,或者将它们分配给本身在不同范围内可用的其他变量。