Ответы пользователя по тегу Play Framework
  • Как в Scala тип Future[String] преобразовать в String?

    @kondaurov
    Full stack developer
    Единственный способ избавиться от Future и работать непосредственно с результатом это дождаться когда этот результат будет вычислен. Используйте concurrent.Await(f: Future[Any], duration) для этого.
    Внимание: Эта функция кидает исключение если Future не выполнится за duration


    val f = concurrent.Future.successful("myFutureString")
    val notFuture = concurrent.Await(f, 1.second)
    print(notFuture)


    Использовать Await не рекомендуется, делать это нужно в крайних случаях. Я использую Await тогда когда работаю с внешними Api сервисами, чтобы не заддосить запросами, а внутри своего приложения использую map.

    Вышеописанный пример можно выполнить и так(рекомендуется):

    val f = concurrent.Future.successful("myFutureString")
    f.map(res => print(res))
    Ответ написан
    Комментировать