msa6886
@msa6886

Как сделать так чтобы после обработки события началась следующая итерация в бесконечном цикле?

while(1) {
     сonfig.write(request, 'ascii');             //отправка запроса по TCP
     // если нет ответа то ждать
}
config.on('data', function(data){  //получение ответа
     if(data[18]==DOC_LIST) {
			console.log("Список карт: ", data)
     }
});


желательно обойтись без глобального флага состояния, в реальном коде config.on находится в отдельном модуле и подключен через request.
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
rockon404
@rockon404
Frontend Developer
Как-то так:
checkTCP();

config.on('data', function(data) {
  if (data[18] === DOC_LIST) {
    console.log("Список карт: ", data);
  }
  checkTCP();
});

function checkTCP() {
  while(true) {
    сonfig.write(request, 'ascii');
  }
}
Ответ написан
Комментировать
@Coder321
Зделайте запрос промисом и юзайте async/await
async function infinityLoop() {
    for (; ;) {
        const res = await request();
        console.log(res)
    }
}

function request() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            return resolve(Date.now())
        }, 1000)
    })
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы