Как обнаружить пустой источник Akka - PullRequest
0 голосов
/ 16 апреля 2019

В некоторых крайних случаях я возвращаю пустой источник. Есть ли способ для вызывающего абонента проверить, является ли возвращаемый Источник пустым или нет перед его запуском?

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Есть ли способ для вызывающего абонента проверить, является ли возвращаемый Source пустым или нет перед его запуском?

Нет.Единственный способ определить, пуст ли Source, - запустить его.

1 голос
/ 16 апреля 2019

Источник Этап обработки с ровно одним выходом, испускающий элементы данных всякий раз, когда последующие этапы обработки готовы их получить.

По определению мы не можем знать элемент источника, если тольковниз по течению, чтобы получить.

Итак, насколько я понимаю, мы не можем проверить, является ли источник пустым или нет без его запуска.Пожалуйста, не стесняйтесь комментировать ваши мысли

Я думаю, что один из способов достижения этого требования -

val x: Future[Boolean] = Source.empty.runWith(Sink.seq).transform{
   case Success(lst) => Success(lst.isEmpty)
   case Failure(_) => Success(true)
}
...