Что-то не так с этим компонентом noflo?

Это мой noflo-компонент HelloWorld.js — он просто принимает переданную строку и отправляет ее.

const noflo = require('noflo');

exports.getComponent = () => {
  if (!input.hasData('in')) {
    return;
  }

  const c = new noflo.Component();

  c.inPorts.add('in', { datatype: 'string' });
  c.outPorts.add('out', { datatype: 'string' });

  c.process((input, output) => {
    const data = input.getData('in');
    output.sendDone({
      out: data,
    });
  });

  return c;
};

Я построил образец графика из документации Начало работы с NoFlo, и он отлично работает. Но теперь, пробуя свой собственный компонент (см. выше), когда я пытаюсь запустить граф, который его использует, моя система просто крутится, жует около 4 ГБ памяти, а затем выплевывает:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Я уже ознакомился с советами, которые вы найдете по этой проблеме (все NODE_OPTIONS, ограничение памяти). На самом деле, у меня была эта проблема с кучей в моей системе Linux, и тогда совет сработал. Но теперь я получаю указанную выше ошибку (только для этого проекта noflo) как в двух моих системах Windows, так и в моей системе Linux.

Я что-то неправильно закодировал в компоненте? Вот мой график, HelloWorld.fbp:

Hello(HelloWorld) OUT -> IN Display(core/Output)

'say it' -> IN Hello

И мой скрипт npm:

"flo-hello": "noflo-nodejs --graph graphs/HelloWorld.fbp --batch --debug",

person Nolan Simpson    schedule 30.01.2021    source источник


Ответы (1)


Часть input.hasData('in') должна быть в функции обработки, а не в getComponent

person bergie    schedule 31.01.2021
comment
Большое спасибо за ответ! Я переместил input.hasData('in') в функцию обработки, но проблема осталась. - person Nolan Simpson; 01.02.2021
comment
Сомневаюсь, что это связано с компонентом. Если не считать одной проблемы, вроде все нормально. - person bergie; 02.02.2021