Node.js回调函数错误参数说明?

时间:2015-07-13 05:08:20

标签: javascript node.js

我对javascript有基本的了解,并且一直在学习node.js中异步函数的工作原理。我对参数错误的回调函数感到很困惑。例如,这里有一些代码:

contact.saveContacts = function(contactArray, done) {
       var jsonfile = require('jsonfile')
       jsonfile.writeFile('data.json', contactArray, done)
}

Contact.saveContacts(contacts, function(err) {
       console.log('success')
}

我的问题是,为什么回调函数包含参数错误?我很困惑为什么它存在,因为它似乎在它调用的函数中没有用处。

4 个答案:

答案 0 :(得分:3)

这是一种称为错误的第一个回调的模式,在javascript中经常使用。

请参阅this article以供参考。

答案 1 :(得分:1)

通常,同步函数要么成功返回,可能带有值,要么在出现问题时抛出异常。调用代码可以通过捕获和检查错误或让它落入可能处理错误的其他代码来选择在抛出异常时该怎么做。

在调用代码执行完毕后调用异步回调函数。这意味着没有机会捕获抛出的异常。因此,错误会传递给回调函数,而不是抛出,因此调用代码可以处理成功和错误状态。

答案 2 :(得分:0)

如果写操作存在问题,例如权限错误对象被调用,并且其中的原因是为了防止意外错误。 想象一下,我们正在命令计算机开始这样做但是在路上有关于计算机无法写入该权限的权限的块在这种情况下计算机不知道该怎么做而且我们的程序崩溃以防止这个内部回调我们指定了什么在这种情况下,例如,如果权限被拒绝,原因是写权限提示用户输入密码并强制写入或打开一个框,用户必须以用户身份运行此

答案 3 :(得分:0)

如果一切正常,则错误参数没有用处。但是,当出现错误时它太有用了。任何类型的错误,例如运行时错误,文件已被删除或任何内容,如果发生,错误的详细信息将出现在回调的错误参数中。因此,最好使用该参数如下:

Contact.saveContacts(contacts, function(err) {
    if(err){
        console.log(err);
    }
    else{
        console.log('success');
    }

}

通过这种方式,您将了解任何错误,如果该功能发生了这种情况。