У меня есть сервер Python, который пишет в именованный FIFO, и клиент nodejs, который читает из него.
Python
def send_data():
print "enter"
f = open(FILEPATH, 'w', 0)
str = "new data"
f.write(str)
f.flush()
f.close()
while True:
send_data()
NodeJS клиент
const read = function () {
console.log("enter");
fs.readFile(FILEPATH, (err, data) => {
if (err) {
console.log(err);
}
else {
console.log(data.toString());
}
setTimeout(read, 10);
});
};
read();
Я ожидаю, чтоpython записывает «новые данные» и закрывает FIFO и nodejs по одному «новые данные» за раз.Я ожидаю, что на выходе будет что-то вроде ввода новых данных, ввода новых данных
, но фактический вывод -
enter
new data
enter
new datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew
Очевидно, мое понимание неверно.Может кто-нибудь объяснить фактическое поведение?И как мне добиться того, чего я хочу?