使用console.log

时间:2019-06-12 04:15:48

标签: javascript emacs org-mode org-babel

使用console.log从组织文件代码块内的JavaScript数组对象打印值时,我收到错误无效的读取语法:“]” 。包含字符串的数组会产生此错误。仅有数值的数组可以很好地打印到控制台。

我不确定org-babel为什么在console.log()上遇到困难。第一步,我尝试检查组织文件的编码。我自己使用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

我的组织配置文件中是否需要做些什么?我在Windows 7(内部版本1,x86_64-w64-mingw32)上使用Emacs 26.1版。 Node.js是10.15.3版。

1 个答案:

答案 0 :(得分:0)

更正:

在我有不同的行试图返回/显示代码块内的值的地方,只有第一个return语句会产生结果(return终止了直接作用域)。似乎有效的方法是 process.stdout.write('yourcodehere' +'\ n');

示例:

尝试使用多个return语句

#+BEGIN_SRC js

return ([0,1,2,3,4]);

return ([5,6,7,8,9]);    

#+END_SRC

#+RESULTS:
| 0 | 1 | 2 | 3 | 4 |

使用process.stdout.write()

#+BEGIN_SRC js

process.stdout.write([0, 1, 2, 3, 4] + '\n');

process.stdout.write(["a", "b", "c", "d", "e"] + '\n');

#+END_SRC

#+RESULTS:
: 0,1,2,3,4
: a,b,c,d,e
: undefined

上一条消息:

  

好的,我找到了一个简单的解决方案。使用返回代替    console.log()。我在Python中尝试了相同的示例,仅在使用return而不是print时得到了结果。所以我尝试了   我的JavaScript示例使用return作为最后一步,这可行   大。结果块中数组的格式看起来更好