как завершить (завершить) асинхронный * поток, созданный на основе другого бесконечного потока? - PullRequest
0 голосов
/ 09 октября 2019

У меня есть ожидание цикла для получения данных из бесконечного потока внутри функции потока async * Я хотел бы завершить (завершить) поток при определенных условиях.

Я ожидал, что break; из await for сделает это, но это не так. какие-либо предложения? Вот фрагмент кода:

Stream<int> conditionLoop() async* {     
  await for (double value in hardware.inputStream()) {
      if (value < 0.0 || value > 98.0) break;
    yield value.round();
  }
  print('stream completed!');
}

Команда print ('поток завершен!') никогда не выполнялась, и виджет StreamBuilder никогда не получает "ConnectionState.done"

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...