Как указать службу выполнения для будущих обратных вызовов в Twitter Util?
Я не понимаю, как я могу указать определенную службу выполнения из Java, такую как пул потоков, для выполнения моего обратного вызова в будущем. Например, у меня может быть цепочка операций с картой:
val executionService = java.util.concurrent.Executors.newSingleThreadExecutor()
val twitterExecutor = com.twitter.util.FuturePool.apply(executionService)
val p = com.twitter.util.Promise.apply[Int]
val r = p.map(t => t + 1).map(t => t + 1).map(t => t + 1)
// Do something else ...
// This could also happen from another thread:
p.updateIfEmpty(Return(10))
com.twitter.util.Await.ready(p)
Как я могу указать начальное исполнение службы twitterExecutor
быть использованы для обратных вызовов и как я могу изменить службу выполнения для одного map
Перезвоните? В стандартной библиотеке Scala я могу указать неявный контекст выполнения. Я не хочу создавать будущее, которое уже завершено, но завершить его позже через обещание.
Я нашел только этот вопрос: https://groups.google.com/forum/, где ответ предлагает использовать flatMap
но я хочу избежать возвращения нового будущего при каждом обратном вызове.
и это объяснение: https://twitter.github.io/finagle/guide/Futures.html но оно показывает мне, как создать новое будущее из пула, которого я хочу избежать, поскольку я начинаю с обещания.