Задержку в Node-red делают соответствующей нодой, но что делать если нам надо сделать задержку в ноде function внутри, следующий код это делает.
Добавляем в начало ноды function функцию
function sleep (time) { return new Promise((resolve) => setTimeout(resolve, time)); }
и в коде где нам надо сделать задержку пишем:
await sleep(5000);
в данном случае задержка будет 5 секунд.
скачать демонстрационный поток:
[ { "id": "2957c7f06a520e1e", "type": "function", "z": "dc889c94886b52da", "name": "function 1", "func": "function sleep (time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n}\n\n\nnode.send(msg);\nawait sleep(5000);\nnode.send(msg);\nawait sleep(5000);\nnode.send(msg);\nreturn;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 580, "y": 760, "wires": [ [ "1652667a15c9e93b" ] ] }, { "id": "6504fb434135fd4f", "type": "inject", "z": "dc889c94886b52da", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 360, "y": 760, "wires": [ [ "2957c7f06a520e1e" ] ] }, { "id": "1652667a15c9e93b", "type": "debug", "z": "dc889c94886b52da", "name": "debug 1", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 820, "y": 760, "wires": [] } ]
Node-red. Делаем паузу в ноде Function