Асинхронная отправка сообщений

Если функции необходимо выполнить асинхронное действие перед отправкой сообщения, она не сможет вернуть (return) сообщение в конце функции.

Вместо этого он должен использовать node.send() функцию, передавая сообщение(я) для отправки. Он принимает то же самое расположение сообщений, которое может быть возвращено.

Например:

doSomeAsyncWork(msg, function(result) {
    msg.payload = result;
    node.send(msg);
});
return;

Узел function клонирует каждый объект сообщения, который вы передаете в node.send, чтобы избежать непреднамеренного изменения объектов сообщений, которые повторно используются в функции.

Функция может запросить среду выполнения не клонировать первое сообщение, переданное в node.send, передав false в качестве второго аргумента функции. Это может быть полезно, если сообщение содержит что-то, что не может быть клонировано, или по соображениям производительности, чтобы минимизировать накладные расходы на отправку сообщений.

node.send(msg,false);