尝试将js函数更改为coffeescript时未捕获的ReferenceError

时间:2016-05-06 18:20:42

标签: javascript coffeescript

这是错误:

Uncaught ReferenceError: er is not defined

这是代码..

{CompositeDisposable} = require 'atom'
lib = require 'lib'

module.exports =
  subscriptions: null

  activate: ->
    @subscriptions = new CompositeDisposable
    @subscriptions.add atom.commands.add 'atom-workspace',
      'my-package:convert': => @convert()

  deactivate: ->
    @subscriptions.dispose()

  convert: ->
    console.log 'Convert text!'
    if editor = atom.workspace.getActiveTextEditor()
      console.log editor.getText()
      lib.process(editor.getText() (er files)) ->
        console.log 'All files ..'
        listFiles(files)

  listFiles: (files) ->
    for fileName in Object.keys(files)
      first = files[fileName].first
      second = files[fileName].second
      third = files[fileName].third
      console.log 'Done'

这是javascript我正在尝试更改为coffeescript内的convert() ..

lib.process(text, function (er, files) {
  console.log('All files ..');
  listFiles(files);
});

1 个答案:

答案 0 :(得分:0)

该行

lib.process(editor.getText() (er files)) ->

不正确,因为它缺少分隔参数所需的逗号。

当试图转换你写给JS的行时,它看起来像这样:

lib.process(editor.getText()(er(files)))(function() {});

当尝试将JS迁移到咖啡时,从http://js2.coffee/开始并从那里开始有时是一个好主意。 始终查看已编译的JS结果,以检查一切是否按预期工作