Javascript Node.JS函数返回与调用该函数
所以我开始在node school学习函数回调/模块,我有点困惑 这是我的密码: 所以我的问题是,我应该返回回调函数还是直接调用它。它似乎给了我同样的结果 如 返回函数_回调(err,finalList) 或 调用函数\u回调(err,finalList)Javascript Node.JS函数返回与调用该函数,javascript,node.js,Javascript,Node.js,所以我开始在node school学习函数回调/模块,我有点困惑 这是我的密码: 所以我的问题是,我应该返回回调函数还是直接调用它。它似乎给了我同样的结果 如 返回函数_回调(err,finalList) 或 调用函数\u回调(err,finalList) 这主要是编码风格的不同。执行早期显式返回可以保存缩进级别: function callFoo(cb) { foo(function(err) { if (err) return cb(err); // do s
这主要是编码风格的不同。执行早期显式返回可以保存缩进级别:
function callFoo(cb) {
foo(function(err) {
if (err)
return cb(err);
// do something else
});
}
与:
function callFoo(cb) {
foo(function(err) {
if (err)
cb(err);
else {
// do something else
}
});
}
它还可以帮助确保您不会意外地执行随后出现的某些代码。正如@mscdex所指出的,如果您的条件得到满足,则返回函数只会保存一些代码
if(true) return callback(); // won't go any further if the condition is met
// do something else
对
if(true) {
callback();
} else {
// do something else
}
但是,在其他情况下返回函数也有好处,例如让外部函数返回内部函数返回的值。。。这听起来令人困惑,所以这里有一个人为的例子:
function sayHi() {
return 'Hi';
}
function foo() {
sayHi();
}
foo(); // returns undefined
// Now, let's have foo() return sayHi()
function foo() {
return sayHi(); //
}
foo(); // now returns 'Hi'
谢谢这让我很困惑,因为这是我第一次遇到回调
if(true) {
callback();
} else {
// do something else
}
function sayHi() {
return 'Hi';
}
function foo() {
sayHi();
}
foo(); // returns undefined
// Now, let's have foo() return sayHi()
function foo() {
return sayHi(); //
}
foo(); // now returns 'Hi'