关于ES6严格标准回调报错问题

  var load = function (protocol, domains, path, query, cb) {
    var tryRequest = function (at) {
      var url = makeURL(protocol, domains[at], path, query)
      loadScript(url, function (err) {
        if (err) {
          if (at >= domains.length - 1) {
            cb(true)  //https://google.com/#q=standard%2Fno-callback-literal  Unexpected literal in error position of callback
          } else {
            tryRequest(at + 1)
          }
        } else {
          cb(false)  //https://google.com/#q=standard%2Fno-callback-literal  Unexpected literal in error position of callback
        }
      })
    }
    tryRequest(0)
  }

https://github.com/standard/s...
从这里我看到了callback(true)或callback(false)在ES6里是不被允许的,这上面的代码是由JS上改写的,应该怎样写才能符合ES6标准?

阅读 16.5k
4 个回答

这是 eslint 的 standard 标准不允许的写法。
如果非要这么写,你可以在 .eslintrc.js文件里的 rules 对象里配置来忽略这条规则。
no-callback-literal: 0

用new Error包裹
cb(new Error(true))
或者用变量
let res = true
callback(res)

"eslint": "^4.19.1",
"eslint-config-standard": "^11.0.0",

设置rules应为:

'standard/no-callback-literal': 0

这个不是es6的标准吧 只是这个js代码规范框架的作者提出的一个新功能吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进