2016-12-16 22 views
8

मेरे पास Either[Future[A], Future[B]] का एक उदाहरण है और मैं इसे Future[Either[A, B]] में बदलना चाहता हूं।किसी भी [भविष्य [ए], भविष्य [बी]] को भविष्य में कैसे परिवर्तित करें [या तो [ए, बी]]

my previous question के बाद से, cats 0.8.1 जारी की गई है, पुस्तकालय की संरचना बदल रहा है और Either के पक्ष है, जो सही पक्षपाती 2.12 में है में Xor छोड़ने।

इस प्रकार पिछले स्वीकृत उत्तर में वर्णित विधि अब और काम नहीं करती है। मैंने उचित आयात खोजने की कोशिश की लेकिन असफल रहा।

cats.instances.either._ 
cats.implicits._ 
cats.syntax.bitraverse._ 

व्यावहारिक लग रहा था लेकिन दुर्भाग्य से काम नहीं करता है। संकलन अभी भी value bisequence is not a member of Either[scala.concurrent.Future[A],scala.concurrent.Future[‌​B]]

*.all._ पर आयात को बढ़ाकर संकलक त्रुटि को नहीं बदला।

मैं नहीं सभी पुस्तकालयों परियोजना पर 2.12

+2

'either.fold (_ नक्शा (। बाएं (_)), _.map (दाएं (_))) ', लेकिन यह बिल्लियों से कैसे संबंधित है? –

+0

मैंने बिल्लियों 0.8.1 और स्कैला 2.11.8 और 2.12.1 के साथ यह कोशिश की है, और दोनों संस्करणों में 'भविष्य [ए], भविष्य [बी]]' पर 'bisequence'' है। क्या आपके पास दायरे में एक निष्पादन 'निष्पादन कॉन्टेक्स्ट' है? यह 'आवेदक [भविष्य] ' – Kolmar

+0

@ कोल्मार के लिए आवश्यक है - हाँ, मैं एक अंतर्निहित' निष्पादन कॉन्टेक्स्ट 'आयात करता हूं। यह अजीब बात है, संकलन से पहले परियोजना को साफ कर दिया है। क्या आप उसी 3 आयात का उपयोग करते हैं? – kostja

उत्तर

4

के लिए एक संस्करण जारी किया है पाठक सुविधा के लिए टिप्पणियों से जवाब तैयार की है निर्भर करता है के रूप में स्केला 2.11.8 पर हूँ:

1: आप यह कर सकते सादा स्केला में (cats.Functor का उपयोग कर परिभाषा के लिए यहाँ), @wheaties & @ जीन फिलिप-गोली के सौजन्य से

def eitherFmap[F[_], A, B](either: Either[F[A], F[B])(implicit F: Functor[F]): F[Either[A, B]] = 
either.fold(f => F.map(f)(Left(_)), f => F.map(f)(Right(_))) 

2: बिल्लियों bisequence क्योंकि विवादित का संकलन करने से इनकार कर दिया आयात: एक भी आयात यहाँ पर्याप्त है - @kolmar के सौजन्य से

import cats.instances._ 
... 
val futureOfEither = eitherOfFutures.bisequence 

3: cats import guide पढ़ भविष्य में इस मुद्दे से बचने के लिए - शिष्टाचार @ पीटर-neyens

संबंधित मुद्दे