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

Node js (windows 7 x64) problem z kolejnością wykonywania się kodu.
Krzychu Keronski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
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?

Kopiuj
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);
SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
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()

Krzychu Keronski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
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 10:14:51 GMT+0100 (GMT+01:00) START APP
$ Fri Jan 04 2019 10:14:56 GMT+0100 (GMT+01:00) After 5000 [ms]
$ Fri Jan 04 2019 10:14:56 GMT+0100 (GMT+01:00) Port is open

Krzychu Keronski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.