Ошибка оценки блока кода JavaScript в орг-режиме при использовании console.log - PullRequest
0 голосов
/ 12 июня 2019

Я получаю сообщение об ошибке Неверный синтаксис чтения: "]" при использовании console.log для печати значений из объектов массива JavaScript внутри блоков кода файла org.Массивы, содержащие строки, выдают эту ошибку.Массивы, имеющие только числовые значения, печатаются в консоль нормально.

Я не уверен, почему 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

Isчто мне нужно сделать в моих конфигурационных файлах org?Я использую Emacs версии 26.1 в Windows 7 (сборка 1, x86_64-w64-mingw32).Node.js - версия 10.15.3.

1 Ответ

0 голосов
/ 13 июня 2019

Исправление:

Если у меня есть разные строки, пытающиеся вернуть / показать значения внутри блока кода, только первый оператор return дает результат (return завершает непосредственную область видимости). Кажется, что работает process.stdout.write ( 'ваш код здесь' + '\ n');

Пример:

Попытка использовать несколько операторов возврата

#+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 с использованием возврата в качестве последнего шага, и это работает отличный. Форматирование массива в блоке результатов выглядит лучше тоже.

...