javascript - Node.js:为什么在错误处理期间应该返回回调结果?

标签 javascript node.js asynchronous callback fs

这里是 Node.js 新手。我正在通过 NodeSchool.io 上的教程学习 Node.js ,在我们学习模块的一个教程中,我们被要求编写如下代码:

// Some code...

function filteredLs(dir, ext, callback) {
    fs.readdir(dir, function(err, files) {
        if (err)
            return callback(err); // return statement necessary here...
        callback(null, withExtension(files, ext)); // ...but not here
    })
}

module.exports = filteredLs;

我的问题是,在这样的示例中,为什么在处理错误时需要包含 return 语句,但当它为 null 时可以省略?无论如何,我不明白函数的返回值对 readdir 有何用处,因为它是在完成工作后发生的。为什么会有所不同?

最佳答案

调用回调函数时使用return通常是为了防止后面的代码运行。返回的通常是不相关的。

这就是为什么在错误情况下需要它,因此也不会调用非错误情况的回调调用。

在非错误情况下不需要它,因为它已经是函数的最后一行。

关于javascript - Node.js:为什么在错误处理期间应该返回回调结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34560394/

相关文章:

javascript - 如何在我的 Vue 项目中设置 vue-burger-menu

node.js - 如何让 puppeteer 在 Google Cloud Run/Cloud Build 中工作?

javascript - 添加 bodyParser() 挂起所有 api 请求

asp.net-mvc - 在 Action 内的单独线程上运行方法

node.js - 运行 npm install 时出错 : No compatible version found: async

javascript - 基于标题搜索使用JavaScript修改JSON对象

javascript - Controller 中有 $state.go 方法的单元测试 Controller

javascript - 对特定索引范围内的数组元素求和

javascript - 如何使mocha中的 "it"等到 "it"内的 promise 得到解决?

javascript - 改变进度条的大小?