Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   node.js + serialport. Не ясен порядок выполнения кода (https://javascript.ru/forum/node-js-io-js/63295-node-js-serialport-ne-yasen-poryadok-vypolneniya-koda.html)

sinusx 29.05.2016 18:34

node.js + serialport. Не ясен порядок выполнения кода
 
Всем привет!

Хочу разобраться с работой компорта на node.js
Разбирался по этой инструкции https://www.npmjs.com/package/serialport
Пока стоит простая задача открыть порт руками, пописать туда что-то и корректно закрыть.


Столкнулся с тем, что у меня по какой-то причине методы отвечающие за работу с портом, выполняются позже всего остального кода независимо от их расположения.

Вот код:

var SerialPort = require('serialport').SerialPort;
var port = new SerialPort('COM3', {baudrate: 9600}, false);

console.log("1: ", checkPort());

port.open(function (err) {
	if (err) {
       	return console.log('Error opening port: ', err.message);
  	};
  	console.log("2: ", checkPort());
  	port.write('main screen turn on \n');
  	console.log("3: ", checkPort());
  	port.close();
  	console.log("4: ", checkPort());
}); 

console.log("5: ", checkPort());


function checkPort() {
	return (port.isOpen()) ? "port has been opened" : "port has been closed";
};



На выходе я ожидаю:
==============
1: port has been closed
2: port has been opened
3: port has been opened
4: port has been closed
5: port has been closed

Но в реальности так:
==============
1: port has been closed
5: port has been closed
2: port has been opened
3: port has been opened
4: port has been closed


Подскажите пожалуйста почему?


Часовой пояс GMT +3, время: 15:43.