Noflo-ui: Noflo-core Component Callback.js не работает для меня - PullRequest
0 голосов
/ 01 апреля 2019
`const noflo = require('noflo');

exports.getComponent = () => {
const c = new noflo.Component();
c.description = `This component calls a given callback function for each
IP it receives.  The Callback component is typically used to connect
NoFlo with external Node.js code.`;
c.icon = 'sign-out';

c.inPorts.add('in', {
description: 'Object passed as argument of the callback',
datatype: 'all',
});
c.inPorts.add('callback', {
description: 'Callback to invoke',
datatype: 'function',
control: true,
required: true,
});
c.outPorts.add(
'error',
{ datatype: 'object' },
);

return c.process((input, output) => {
if (!input.hasData('callback', 'in')) {
  return;
}
const [callback, data] = input.getData('callback', 'in');
      console.log('callback', callback);
if (typeof callback !== 'function') {
  output.done(new Error('The provided callback must be a function'));
  return;
}

// Call the callback when receiving data
try {
  callback(data);
} catch (e) {
  output.done(e);
  return;
}
output.done();
});
};

~ `Callback graph У меня есть простой график с тремя компонентами из noflo-core, Callback.js и двумя компонентами Output.js.Выходной порт Output.js подключен к порту обратного вызова компонента Callback, порт ошибки Callback.js связан с другим компонентом Output.js в порту.При запуске графика я получаю сообщение об ошибке в терминале времени выполнения:

'Предоставленный обратный вызов должен быть функцией'

Как правильно использовать компонент Callback?

Неправильно подключать выходной порт выхода к порту обратного вызова на компоненте обратного вызова, но это единственный способ, которым может подключиться ребро.

...