मैं वायदा का उपयोग करके कुछ के लिए एक स्पेक लिखने की कोशिश कर रहा हूं, और मुझे यकीन नहीं है कि मुझे Futures
विशेषता का उपयोग कैसे करना है। मुझे whenReady
FutureConcept
पास करना होगा, लेकिन मुझे नहीं पता कि मुझे Future
से एक कैसे बनाना चाहिए। प्रलेखन पढ़ता है:जब रीडी विफल रहता है
सेwhenReady अधिक मोटे तौर पर लागू करने के लिए, भविष्य के प्रकार यह स्वीकार करता है एक FutureConcept [टी], जहां टी मूल्य के प्रकार के भविष्य से का वादा किया है। जब भविष्य में आप भविष्य के प्रकार (मॉडल प्रकार) को फ्यूचर कॉन्सेप्ट [टी] में पास करना चाहते हैं, तो भविष्य में एक भविष्य को पास करने के लिए रूपांतरण की आवश्यकता होती है।
कि मैं समझता हूँ कि मैं एक Future
और एक FutureConcept
के बीच एक अंतर्निहित रूपांतरण लिखने के लिए है (जो मेरे लिए गलत लगता है, के रूप में ऐसा लगता है कि बॉयलरप्लेट होना चाहिए, लेकिन यह केवल एक चीज मैं इसके बारे में बना सकते हैं) । मैं कैसे है कि हालांकि, FutureConcept के प्रलेखन मुझसे कहता है handily
वाक्य रचना इस विशेषता वायदा के साथ परीक्षण के लिए प्रदान करता है पर जानकारी के लिए विशेषता फ्यूचर्स के लिए दस्तावेज़ देखें करने के लिए को समझ नहीं सकता।
मुझे पूर्ण सर्कल बनाने के लिए। सबसे सरल उदाहरण मैं पकाया
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import org.scalatest.WordSpecLike
import org.scalatest.concurrent._
class FutureSpec extends WordSpecLike with Futures {
"A future" must {
"be a valid argument for whenReady" in {
val fut = future { 42 }
whenReady(fut) { res => s should be 42 }
}
}
}
कि
- प्रकार मेल नहीं खाता के साथ संकलन नहीं करता है; मिला: scala.concurrent.Future [Int] आवश्यक: FutureSpec.this.FutureConcept [?]
- ';' अपेक्षित लेकिन पूर्णांक अक्षर मिला।
मुझे अलग-अलग क्या करना चाहिए?
इस उत्तर बिल्कुल सही, बस की स्पष्टता थोड़ा जोड़ने के लिए है होना चाहिए: 'फ्यूचर्स के साथ' परिवर्तन के लिए –
'ScalaFutures साथ' धन्यवाद, क्या यह बेहतर है? – Martijn
यह सही है। आपके जवाब ने मुझे बहुत मदद की। चीयर्स! –