Доброго времени суток!
В программе выполняется код после получения данных. Параллельно приходит множество данных.
Данные необходимо обрабатывать. Код написан с использованием async\await. В определенный момент данные нужно обработать выполнив тяжелую функцию.
Проблема в том, что данные могут придти похожие и тогда их обработка не нужна, нужно лишь дождаться уже идущей обработки таких данных и взять результат. В этом моменте и использую while с засыпанием на 100мс с последующей проверкой окончания выполнения.
Продолжать выполнение нельзя без окончания обработки.
Как в таких случаях поступают? Думаю, что это так себе вариант реализации.
upd1:
Допустим, что входные данные это числовое значение. Приходят 4 входных значения.
1)1
2)2
3)3
4)1
и вот для 4-ых входных данных не нужно выполнять проверку, потому что она еще выполняется для 1-ых. из-за этого приходится стопорить код циклом вида
while(!isChecked) {
await sleep(100) // промис возвращающийся через 100мс
}