节点红色关闭事件不等待异步功能完成

Node red on-close event does not wait for async function to finish

根据文档 https://nodered.org/docs/creating-nodes/node-js 当 Node-red(或有问题的特定节点)关闭时,将调用 "close" 事件,如果使用参数注册了侦听器,则它应该在完全停止之前等待 done()。

this.on('close', function(done) {
    doSomethingWithACallback(function() {
        done();
    });
});

虽然它对我不起作用。我的错误,我敢肯定,但我不知道在哪里。以下代码显示日志中的第一个 "Closing" 条目,但不显示第二个条目 "Waited enough. Actually finishing now.":

node.on("close", function(done) {
    node.log('Closing.');
    setTimeout(function(){
        node.log('Waited enough.Actually finishing now.');
        done();
    },5000);
});

有人可以给我指点吗?

使用: 节点红色 0.17.5 node.js6.14.1

编辑:在下面添加了输出日志

pi@raspberrypi:~ $ node-red-start

Start Node-RED

Once Node-RED has started, point a browser at http://192.168.1.17:1880
On Pi Node-RED works better with the Firefox or Chrome browser

Use   node-red-stop                          to stop Node-RED
Use   node-red-start                         to start Node-RED again
Use   node-red-log                           to view the recent log output
Use   sudo systemctl enable nodered.service  to autostart Node-RED at every boot
Use   sudo systemctl disable nodered.service to disable autostart on boot

To find more nodes and example flows - go to http://flows.nodered.org

Starting as a systemd service.
Started Node-RED graphical event wiring tool..
16 Apr 10:11:27 - [info]
Welcome to Node-RED
===================
16 Apr 10:11:27 - [info] Node-RED version: v0.17.5
16 Apr 10:11:27 - [info] Node.js  version: v6.14.1
16 Apr 10:11:27 - [info] Linux 4.14.30-v7+ arm LE
16 Apr 10:11:30 - [info] Loading palette nodes
16 Apr 10:11:47 - [info] Dashboard version 2.7.0 started at /ui
16 Apr 10:11:50 - [info] Settings file  : /home/pi/.node-red/settings.js
16 Apr 10:11:50 - [info] User directory : /home/pi/.node-red
16 Apr 10:11:50 - [info] Flows file     : /home/pi/.node-red/flows_raspberrypi.json
16 Apr 10:11:50 - [info] Server now running at http://127.0.0.1:1880/
16 Apr 10:11:51 - [info] Starting flows
16 Apr 10:11:51 - [info] Started flows
Stopping Node-RED graphical event wiring tool....
16 Apr 10:12:06 - [info] Stopping flows
16 Apr 10:12:06 - [info] [simple-queue:queue1] Closing.
Stopped Node-RED graphical event wiring tool..

您遇到了一个已在 Node-RED 0.18 中修复的错误。

在 Node-RED 0.18 之前,处理运行时关闭的代码在终止进程之前不会等待所有节点关闭处理程序完成。