Задать вопрос
@yopive3562

Как заменить цикл while?

Доброго времени суток!
В программе выполняется код после получения данных. Параллельно приходит множество данных.
Данные необходимо обрабатывать. Код написан с использованием async\await. В определенный момент данные нужно обработать выполнив тяжелую функцию.
Проблема в том, что данные могут придти похожие и тогда их обработка не нужна, нужно лишь дождаться уже идущей обработки таких данных и взять результат. В этом моменте и использую while с засыпанием на 100мс с последующей проверкой окончания выполнения.
Продолжать выполнение нельзя без окончания обработки.
Как в таких случаях поступают? Думаю, что это так себе вариант реализации.

upd1:
Допустим, что входные данные это числовое значение. Приходят 4 входных значения.
1)1
2)2
3)3
4)1
и вот для 4-ых входных данных не нужно выполнять проверку, потому что она еще выполняется для 1-ых. из-за этого приходится стопорить код циклом вида
while(!isChecked) {
   await sleep(100) // промис возвращающийся через 100мс
}
  • Вопрос задан
  • 658 просмотров
Подписаться 2 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro
frontend developer
В простейшем случае используйте коллбэк в обработке данных
function processData(callback){
  // тяжелая обработка...
  callback();
}

processData(function(){
  // Данные обработаны
});


Или прикрутите промисы, и сможете использовать async/await
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы