के साथ कॉल करता है, मैं जानना चाहता हूं कि किसी भी प्रकार की "विधि कॉल श्रृंखला" बनाना संभव है, सभी विधियों को उसी या तो [त्रुटि, परिणाम] लौटाएं।चेनिंग विधि या तो
मैं क्या करना चाहता हूं: सभी विधियों को क्रमशः कॉल करें, और जब विधि बाएं (त्रुटि) लौटाती है, तो विधि कॉल को रोकें और कॉल श्रृंखला में पाए गए पहले बाएं को वापस करें।
मैंने कुछ सामान, गुना, मानचित्र, अनुमानों के साथ प्रयास किया है ... लेकिन मैं स्कैला के लिए नया हूं और कोई सुरुचिपूर्ण समाधान नहीं ढूंढ रहा हूं।
मुझे लगता है कि जैसे कुछ बात tryed है:
def createUserAndMandatoryCategories(user: User) : Either[Error,User] = {
User.create(user).right.map {
Logger.info("User created")
Category.create(Category.buildRootCategory(user)).right.map {
Logger.info("Root category created")
Category.create(Category.buildInboxCategory(user)).right.map {
Logger.info("Inbox category created")
Category.create(Category.buildPeopleCategory(user)).right.map {
Logger.info("People category created")
Category.create(Category.buildTrashCategory(user)).right.map {
Logger.info("Trash category created")
Logger.info("All categories successfully created created")
Right(user)
}
}
}
}
}
}
लेकिन यह काम नहीं करता। और वैसे भी मुझे वास्तव में इंडेंटेशन पसंद नहीं है। इसके अलावा मैं (मैं अनुमान मैं का उपयोग गुना चाहिए?)
मैं कुछ इस तरह लिखा तलाश कर रहा हूँ एक नया स्ट्रिंग समस्या का वर्णन में त्रुटि को बदलने के लिए करना चाहते हैं:
val result : Either[String,CallResult] = call1.something("error 1 description")
.call2.something("error 2 description")
.call3.something("error 3 description")
.call4.something("error 4 description")
क्या यह संभव है स्कैला के साथ ऐसी चीज करने के लिए? शायद दोनों या तो विकल्प का उपयोग कर?
एक बाधा यह भी होगी कि यदि पहली कॉल विफल हो जाती है, तो अन्य कॉल नहीं किए जाने चाहिए। मैं एक समाधान नहीं चाहता जहां मैं सब कुछ कहूं और फिर ईथर में शामिल हो।
धन्यवाद!
हाय, scalaz से विशेषता मान्यता है कि तुम क्या – fp4me
इस के लिए देख रहे हैं या तो इकाई का वर्णन है। –