`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();
});
};
~ ` У меня есть простой график с тремя компонентами из noflo-core, Callback.js и двумя компонентами Output.js.Выходной порт Output.js подключен к порту обратного вызова компонента Callback, порт ошибки Callback.js связан с другим компонентом Output.js в порту.При запуске графика я получаю сообщение об ошибке в терминале времени выполнения:
'Предоставленный обратный вызов должен быть функцией'
Как правильно использовать компонент Callback?
Неправильно подключать выходной порт выхода к порту обратного вызова на компоненте обратного вызова, но это единственный способ, которым может подключиться ребро.