Node-red. Делаем паузу в ноде Function

Задержку в Node-red делают соответствующей нодой, но что делать если нам надо сделать задержку в ноде function внутри, следующий код это делает.
Добавляем в начало ноды function функцию

1
2
3
function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
и в коде где нам надо сделать задержку пишем:
1
await sleep(5000);

в данном случае задержка будет 5 секунд.
скачать демонстрационный поток:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[
{
"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

Навигация по записям