使用console.log时出现组织模式JavaScript代码块求值错误

qni6mghb  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(81)

我收到错误**无效的读取语法:“]"**当使用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。

qzwqbdag

qzwqbdag1#

更正:
当我在代码块中尝试返回/显示值时,只有第一个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

上一条留言:

我找到了一个简单的解决方案。使用return代替console.log()。我在Python中尝试了相同的示例,只有在使用return代替print时才得到结果。所以我在我的JavaScript示例中尝试了同样的方法,使用return作为最后一步,效果很好。结果块中数组的格式看起来也更好。

tag5nh1u

tag5nh1u2#

通过将':results output'添加到头文件,console.log将打印数组的内容。

#+begin_src js :results output
  let liste = [...'Zlatan is gone'];
  console.log(liste);
#+end_src

#+RESULTS:
: [
:   'Z', 'l', 'a', 't',
:   'a', 'n', ' ', 'i',
:   's', ' ', 'g', 'o',
:   'n', 'e'
: ]

相关问题