Node js (windows 7 x64) problem z kolejnością wykonywania się kodu.

0

Witam,
po uruchomieniu poniższego kodu otrzymuję następujący rezultat w konsoli

START APP,
After 5000 [ms],
Port is open

Wygląda na to, że funkcja setTimeout blokuje mi otwarcie portu com aż do wykonania własnego zdarzenia. Bez funkcji setTimeout port jest uruchamiany błyskawicznie w przeciwnym przypadku zawsze po czasie, który ustawię w funkcji setTimeout. Macie jakieś pomysły?

const serial = require('serialport');

var mySerialPort = new serial("COM5", {
    baudRate: 9600,
    dataBits: 8,
    parity: 'none',
    stopBits: 1,
    flowControl: false,
    //autoOpen: false,
});


console.log("START APP");

//Events
mySerialPort.on('open', function() {
    console.log("Port is open");
});

setTimeout(() => console.log("After 5000 [ms]"), 5000);
0

A może nie otwarcie portu jest przyblokowane tylko samo wypisanie logu na standardowe wyjście? Możesz jeszcze dopisać w logach czas ich wypisania, czyli new Date()

0
student pro napisał(a):

A może nie otwarcie portu jest przyblokowane tylko samo wypisanie logu na standardowe wyjście? Możesz jeszcze dopisać w logach czas ich wypisania, czyli new Date()

niestety blokowany jest cały kod:

$ Fri Jan 04 2019 1051 GMT+0100 (GMT+01:00) START APP
$ Fri Jan 04 2019 1056 GMT+0100 (GMT+01:00) After 5000 [ms]
$ Fri Jan 04 2019 1056 GMT+0100 (GMT+01:00) Port is open

0

Błąd jest w najnowszym module serialport. Temat: https://github.com/node-serialport/node-serialport/issues/1751.

1 użytkowników online, w tym zalogowanych: 0, gości: 1