मुझे Future[Either[A, B]]
मिला है और B
से Future[C]
प्रदान करने वाला एक फ़ंक्शन है।भविष्य [या तो [ए, बी]] भविष्य में [या तो [ए, सी]] एक (बी => भविष्य [सी]) का उपयोग कर
मुझे Future[Either[A, B]]
से Future[Either[A, C]]
को बदलने की आवश्यकता है।
क्या Future[Either[A, C]]
प्राप्त करने का कोई सीधा तरीका नहीं है और Future[Either[A, Future[C]]]
नहीं है?
मैं की तरह कुछ के बारे में सोच रहा हूँ:
val eventuallyInitialValue: Future[Either[A, B]] = ???
val result: Future[Either[A, C]] = for {
e: Either[A, B] <- initialValue
c: C <- service.getValue(e.right)
} yield e.right.map(_ => c)
यह service.getValue(e.right)
के बाद से सिर्फ छद्म कोड संकलन नहीं करता है। ऐसा करने का सही तरीका क्या होगा?
धन्यवाद। इसे सिर्फ दाएं के रूप में वापस करने की आवश्यकता है: बीटीओएफसी (आर)। मैप (दाएं (_)) –
@ अलबान: हाँ, संपादित किया गया है कि – Daenyth
यदि आप 'भविष्य.प्ली' के बजाय 'Future.successful' का उपयोग करते हैं तो आप इससे बचेंगे थ्रेड पूल पर 'बाएं (ई) 'बनाना। –