我收到错误**无效的读取语法:“]"**当使用console.log从org文件代码块内的JavaScript数组对象打印值时。包含字符串的数组会产生此错误。只有数值的数组可以很好地打印到控制台。
我不知道为什么org-babel在console.log()上有问题。我尝试检查我的org文件的编码作为第一步。我使用node.js本身验证了我的代码。指定不同的解释器(例如babel-cli)来评估代码块会产生相同的错误。
这工程
#+BEGIN_SRC js
let myarray = [1, 2, 3, 4, 5];
console.log(myarray);
#+END_SRC
#+RESULTS:
: [1 (\, 2) (\, 3) (\, 4) (\, 5)]
这并不
#+BEGIN_SRC js
let myarray = ["a", "b", "c", "d", "e"];
console.log(myarray);
#+END_SRC
我需要在我的org配置文件中做些什么吗?我在Windows 7上使用Emacs版本26.1(build 1,x86_64-w 64-mingw 32)。Node.js版本是10.15.3。
2条答案
按热度按时间qzwqbdag1#
更正:
当我在代码块中尝试返回/显示值时,只有第一个return语句产生结果(return结束立即作用域)。看起来工作的是process.stdout.write('yourcodehere'+ '\n');
示例:
尝试使用多个return语句
使用process.stdout.write()
上一条留言:
我找到了一个简单的解决方案。使用return代替console.log()。我在Python中尝试了相同的示例,只有在使用return代替print时才得到结果。所以我在我的JavaScript示例中尝试了同样的方法,使用return作为最后一步,效果很好。结果块中数组的格式看起来也更好。
tag5nh1u2#
通过将':results output'添加到头文件,console.log将打印数组的内容。