0

我正在尝试 js2-mode,它是 emacs 中的一种 javascript IDE。其中一项功能是语法错误突出显示和样式警告。自从打开它以来,我注意到我在我的代码中都收到了这个警告:

anonymous function does not always return a value

当我编写一个负责调用回调的函数时,我通常不会显式添加返回值。是不是很糟糕的风格?

例如:

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 太紧张了?

4

1 回答 1

0

工作中的共识,以及来自 jfriend00 的共识是,它应该这样写:

function someFunc (requiredParam, callback) {
  if (!requiredParam) { 
    callback("missing required param")
    return
  }

  someAsyncMethod(requiredParam, function(someValue) {
    callback(null, someValue)
  })
}

js2-mode 是对的。我写单行代码的愿望使我的代码变得不那么清晰。

于 2015-02-02T22:42:05.067 回答