回调实现Node.js样式

回调实现Node.js样式,node.js,callback,Node.js,Callback,我一直想知道回调是如何实现的。我总是徘徊(在Node.js中)这是如何工作的: fs.readFile('mydata.txt', function (err, buffer) { 什么会返回错误?什么返回缓冲区 我知道这些都是回调,我总是努力学习它们。因此,为了理解它,我编写了自己的简单实现 有人能看看这个简单的例子吗。它来自我的头脑,因为我花时间去理解我所做的。当然,这可能是完全错误的 我很想听听你的意见。在我放弃回访而支持承诺之前,我想100%地理解它们 我的例子是: function

我一直想知道回调是如何实现的。我总是徘徊(在Node.js中)这是如何工作的:

fs.readFile('mydata.txt', function (err, buffer) {
什么会返回错误?什么返回缓冲区

我知道这些都是回调,我总是努力学习它们。因此,为了理解它,我编写了自己的简单实现

有人能看看这个简单的例子吗。它来自我的头脑,因为我花时间去理解我所做的。当然,这可能是完全错误的

我很想听听你的意见。在我放弃回访而支持承诺之前,我想100%地理解它们

我的例子是:

 function Executor (callback, nameParam) {
              callback(1,6, function (err, result) {
                       if (err) {
                           console.log(err);
                       } else {
                           console.log(result)
                       }
              });
        }

        function calculator(num1, num2, returnStuff) {
            var err, result, internalResult;

            internalResult = num1 + num2;

            if (internalResult < 3) {
              returnStuff(err = "Number is lower then three", result);
            } else {
              return returnStuff (err, result = "Number is larger then three");
            }
        }

         Executor(calculator, "John");
函数执行器(回调,nameParam){
回调(1,6,函数(错误,结果){
如果(错误){
控制台日志(err);
}否则{
console.log(结果)
}
});
}
函数计算器(num1、num2、returnStuff){
var错误、结果、内部结果;
内部结果=num1+num2;
如果(结果<3){
returnStuff(err=“数字低于三”,结果);
}否则{
returnStuff(err,result=“数字大于三”);
}
}
遗嘱执行人(计算器,“约翰”);

尽我所能看到或理解的可能重复的。。。没有答案可以回答我在上面建议的线程中的实现。我的评论不是对您理解回调的兴趣的批评。我认为这是一个重要的话题,许多人不知道这方面的基本原理。也就是说,你的代码是有效的。没有什么需要修正的,尽管有些人可能建议改变风格。参考答案涉及到您需要“100%理解”回调、“下一步”探索的内容。同样值得注意的是,这是整本书的一个主题……这比你从StackOverflow答案中得到的要多一些。@Matt Bakaitis不接受任何批评。我很感激这个链接,我一定会看的。我只是希望有人检查一下我的想法。一个建议:尝试将
Executor
函数参数更改为
(回调,nameParam)
以及
Executor
回调
中的函数标题…然后编写另一个函数,该函数接受与
计算器
相同数量的参数,并尝试将每个参数传递到
Executor
…即使在同一脚本中也是如此。这将有助于给出一些观点。此外,如果您对“第一类函数”这个术语感到不舒服,请查看一些有关javascript的书籍或教程,了解这个术语的重要性。