Я играл с сегментами кода и, похоже, не могу понять это.
То, что я пытаюсь сделать, - это обмен данными между клиентом и сервером, работающим с require('net')
. У меня, кажется, возникают проблемы в моем .on('data'
мероприятии, это явно вопрос понимания, но я не могу понять это.
Вот фрагмент кода моего сервера:
server.on('connection', connection => {
// ...
connection.on('data', (data) => {
if (/list/.test(data)) {
// does something async
connection.write(listOfFiles.join('\n'));
}
// ...
Он просто пытается прослушать команду "list" и вывести результат функции в событии .write
.
Вот фрагмент кода моего клиента:
client.on('connect', () => {
client.on('data', (data) => {
console.log(data);
askQuestion((error,answer) => {
if (error) {
return error;
} else {
client.write(answer);
}
});
});
});
С дополнительной функцией:
const askQuestion = (callback) => {
rl.question(`> `, (answer) => {
callback(null, answer);
rl.close();
});
};
Кажется, я понимаю, что происходит, client.on('data'
никогда не разрешается полностью, поэтому я могу запустить команду "list" один раз, но она не позволит мне запустить ее во второй раз. Вот где я немного застрял. Я поиграю с разными способами рефакторинга своего кода, в надежде заставить его работать, но если у кого-то есть какие-либо предложения, я буду благодарен.