- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是个愚蠢的问题,但我只想知道这样做的含义:
每当我遇到错误或我想完成一些功能流程时,我都会收到如下指令:
if(err) {
cb(err); // or for example res.json({...});
return;
}
不过我见过一些格式如下的代码:
if(err) {
return cb(err);
}
这样做有内存或其他风险吗?对所有函数进行函数值?
推荐的方法是什么?
最佳答案
如果宿主函数和调用者不期望返回值,那么您的两个选择中的任何一个都会以相同的方式执行。第二个:
return cb(err);
通常纯粹是出于速记的原因(将返回放在一行上)。就我个人而言,我不喜欢这种速记,因为当阅读这段代码时,它意味着 cb()
正在返回一个您希望从宿主函数返回的值,但事实并非如此完全没有。
所以,我更喜欢:
if(err) {
cb(err); // or for example res.json({...});
return;
}
甚至有时:
if(err) {
cb(err); // or for example res.json({...});
} else {
// other code here
}
因为这两者都使宿主函数或回调中没有预期的返回值变得更加清楚。但是,这是我对代码清晰度的看法 - 在执行方面没有实质性差异。
Are there any memory or other kind of risks on doing that? Carrying on the function value over all the functions?
一个普通的return
语句或一个没有任何return
语句结束的函数返回undefined
。如果 cb()
返回 undefined,则
返回 cb()也从宿主函数返回
undefined`。因此,那里的返回值也应该没有差异。返回值没有差异,内存使用应该没有差异。
return cb()
代码确实允许回调返回一个值,该值也成为宿主函数的返回值。如果那是你想要的,那么你将不得不以这种方式编码,但这通常不是你想要的,所以使用 return cb()
允许调用者也许使用回调返回值一种您不打算使用的方式,您将来可能会无意中破坏它,因为它不是预期的功能。
关于javascript - Node JS - 我应该执行 "return cb(..)"还是先执行 cb(..) 然后返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48455737/
这可能是个愚蠢的问题,但我只想知道这样做的含义: 每当我遇到错误或我想完成一些功能流程时,我都会收到如下指令: if(err) { cb(err); // or for example r
求解释。尝试了没有粗箭头的变体,结果相同。使用 "mongodb": "^2.2.24", 下面的代码不起作用(我稍后加载了值,但它们不存在) addCollections(data, cb) {
我找到了两种使用 mongoose find() 执行查询的方法,但想知道它们是否不同: 我们什么时候应该使用: Model.find({},cb) 我们什么时候应该使用: Model.find({}
我刚刚查看了今年 ng-europe session 的一些照片,并注意到一张幻灯片,我认为它可能显示了即将推出的 Angular 2 的一些代码。请参见此处: (来源:https://plus.go
我卡住了。我不断收到相同的 cb is not a function 错误。这是我的错误: TypeError: cb 不是一个函数 我几天前才开始学习javascript,所以我很新。我只是在观看
我想使用 RTF 突出显示 RichTextBox 中的一些文本。我已经使用过\cb 和\cbpat。两者都不起作用。任何人都可以建议其他东西来突出显示 RTF 中的文本吗? 最佳答案 用这个: {\
我尝试在我下载的 angular 项目中安装 node_module,但出现此错误: npm ERR! registry error parsing json 然后我使用 npm intall npm
似乎没有关于这些功能如何工作的任何信息。我想这些是 Tampermonkey 独有的功能? 看起来它们旨在允许当前运行的 Tampermonkey 脚本之间进行通信;不断轮询 GM_Value 存储以
我的存储桶中有 s3 服务器访问日志,我正在尝试使用 lambda 函数将它们访问 AWS 上的 ElasticSearch 服务。 The example lambda function我正在使用的
我有一个在上下文代理上表示的实体,具有多个属性(例如温度、湿度等...)。我有一个 MySql 数据库,它按行保存该实体的值。因此,为了保留该信息,我必须从 cygnus 订阅。这里的问题是信息被保留
我需要将给定的彩色图片分解为三张单独的图片,以便每个颜色分量(Y、Cb、Cr)存储在一张图片中,如 here 。也许知道如何获得这三张照片 分别是 Y、Cb 或 Cr 颜色分量?通过下面的代码,我可以
我创建了一个使用nodemailer发送电子邮件的函数,但运行后我的控制台抛出了我: TypeError: cb is not a function at tryHandleCache (C:
我创建了以下方法来帮助我找到一个项目并更新另一个具有特定值的对象属性,如下所示: mergeAinBbyAttr: function(a, b, attr, val, cb) { asyn
我试图在 if 语句中获取 getId 以检查复选框是否已设置,但我不知道如何在 if 语句中定义 cb 以使其工作。 当我将 cb 声明为已提交的局部变量时,出现两个错误: The final lo
我试图在 ListView 上显示当前登录用户的仅内容帖子,但答案在这里:How to make generic ListView only show user's listing?没有解决我的问题,
我正在尝试运行使用 Metro Bundler 的现有 React Native 项目。我的操作系统是 Ubuntu 20.04,我尝试在物理 Android 设备和使用 Android Studio
幻灯片适用于图像 1-6(原始代码),但我需要显示 13 张图像。这是我所做的,并认为它会起作用,但事实并非如此。它仍然只播放前 6 张图像。 70 年代最初是 36 年代。我不知道我做错了什么/错过
我正在尝试在 JavaScript 中完成一项挑战,但我终其一生都无法弄清楚。 说明是这样说的:迭代 arr 并将其值一一传递给 cb。 提示:您将多次调用 cb(对数组中的每个值调用一次)。 不要为
cb_kwargs(python 参数列表中的一个条目)中的cb 代表什么? 我相信 kwargs 表示关键字参数。但我对 cb 没有任何想法。 最佳答案 回调,我相信。不过没必要。 关于python
我正在尝试制作一个程序来计算你无法通过 6-9-20 的包获得的最大对象数( block )(我对 python 相当陌生,我尝试使用全局和非本地但它没有' 工作)。 def nuggets(n):
我是一名优秀的程序员,十分优秀!