在不需要 return 值的函数中返回值
Returning values in functions that don't need to return a value
我正在尝试 js2 模式,这是 emacs 中的一种 javascript IDE。其中一项功能是语法错误突出显示和样式警告。自从打开它后,我注意到我的代码中到处都是这个警告:
anonymous function does not always return a value
当我编写一个负责调用回调的函数时,我通常不会显式添加一个 return 值。这种风格不好吗?
例如:
function someFunc (requiredParam, callback) {
if (!requiredParam)
return callback("missing required param")
someAsyncMethod(requiredParam, function(someValue) {
callback(null, someValue)
})
}
其中 return
仅用于确保函数的其余部分不会被执行。是不是写成
更好
function someFunc (requiredParam, callback) {
if (!requiredParam)
return callback("missing required param")
return someAsyncMethod(requiredParam, function(someValue) {
return callback(null, someValue)
})
}
后一种风格是让 js2-mode 离开我的唯一方法。或者应该写成
function someFunc (requiredParam, callback) {
if (!requiredParam) {
callback("missing required param")
} else {
someAsyncMethod(requiredParam, function(someValue) {
callback(null, someValue)
})
}
}
这也让我通过了 js2,但我总觉得前一种风格读起来更好。是我做错了还是 js2-mode 太紧张了?
工作中的共识是,从 jfriend00 开始,应该这样写:
function someFunc (requiredParam, callback) {
if (!requiredParam) {
callback("missing required param")
return
}
someAsyncMethod(requiredParam, function(someValue) {
callback(null, someValue)
})
}
js2-mode 是对的。我想写一行代码的愿望让我的代码变得不那么清晰了。
我正在尝试 js2 模式,这是 emacs 中的一种 javascript IDE。其中一项功能是语法错误突出显示和样式警告。自从打开它后,我注意到我的代码中到处都是这个警告:
anonymous function does not always return a value
当我编写一个负责调用回调的函数时,我通常不会显式添加一个 return 值。这种风格不好吗?
例如:
function someFunc (requiredParam, callback) {
if (!requiredParam)
return callback("missing required param")
someAsyncMethod(requiredParam, function(someValue) {
callback(null, someValue)
})
}
其中 return
仅用于确保函数的其余部分不会被执行。是不是写成
function someFunc (requiredParam, callback) {
if (!requiredParam)
return callback("missing required param")
return someAsyncMethod(requiredParam, function(someValue) {
return callback(null, someValue)
})
}
后一种风格是让 js2-mode 离开我的唯一方法。或者应该写成
function someFunc (requiredParam, callback) {
if (!requiredParam) {
callback("missing required param")
} else {
someAsyncMethod(requiredParam, function(someValue) {
callback(null, someValue)
})
}
}
这也让我通过了 js2,但我总觉得前一种风格读起来更好。是我做错了还是 js2-mode 太紧张了?
工作中的共识是,从 jfriend00 开始,应该这样写:
function someFunc (requiredParam, callback) {
if (!requiredParam) {
callback("missing required param")
return
}
someAsyncMethod(requiredParam, function(someValue) {
callback(null, someValue)
})
}
js2-mode 是对的。我想写一行代码的愿望让我的代码变得不那么清晰了。