繁体   English   中英

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

[英]Node.js Callback Function Error Parameter Explanation?

我对javascript有基本的了解,并且一直在学习异步函数如何在node.js中工作。 我一直对带有参数error的回调函数感到困惑。 例如,下面是一些代码:

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

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

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

这是一种称为错误优先回调的模式,在javascript中使用很多。

请参阅本文以供参考。

通常,同步函数可以成功返回(可能带有值),或者在出现问题时引发异常。 调用代码可以通过捕获和检查错误或让其陷入可能处理该错误的其他代码来选择引发异常时的处理方式。

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

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

如果一切正常,错误参数将不起作用。 但是,当出现错误时,它太有用了。 任何类型的错误(例如,运行时错误),文件已被删除或任何事情(如果发生),错误的详细信息将出现在回调的error参数中。 因此,最好按以下方式使用该参数:

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

}

这样,您将了解该函数是否发生了任何错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM