2011-11-29 22 views
9

में संक्रमण के दौरान राज्य का उपयोग कैसे करें मैं अपने अभिनेता में राज्य को संभालने के लिए अक्का एफएसएम का उपयोग कर रहा हूं। मैं हर बार एक निश्चित राज्य में संक्रमण होने पर कुछ क्रियाएं करना चाहता हूं, इससे कोई फर्क नहीं पड़ता कि संक्रमण किस राज्य से किया गया था। डॉक्स पढ़ने के बाद, मैं कुछ का मानना ​​था कि इस इस तरह से हल किया जा सकता है:अक्का एफएसएम

onTransition({ 
    case (_, ToState) => performAction(stateData) 
}) 

... 

when(FromState){ 
    case "changestate" => goto(ToState) using NewStateData 
} 

हालांकि, जब संक्रमण होता है, stateData अभी तक NewStateData के लिए अद्यतन नहीं है।

एक निश्चित राज्य में प्रवेश करने के लिए कार्रवाई करने का अनुशंसित तरीका क्या है?

उत्तर

7

इसे मेरे ध्यान में लाने के लिए धन्यवाद, यह वास्तव में एक निरीक्षण था, जिसे मैंने तुरंत तय किया (देखें the ticket)। दुर्भाग्य से ऐसा नहीं है कि आप ऐसा कर सकते हैं (छोटे पैच में विलय करने के अलावा) जब तक 1.3 बाहर नहीं हो जाता है, जो अगले सप्ताह होना चाहिए; यदि आप विशेष रूप से अधीर हैं, तो मैं सराहना करता हूं कि अगर आप इस सप्ताह जारी किए गए फिक्स के साथ आरसी 2 को आजमा सकते हैं।

+0

इसमें दो दिन लग गए, लेकिन आरसी 2 अब बाहर है। –

+0

मुझे लगता है कि यह समस्या अक्का 2.3.12 में आ गई है। क्या आप पुष्टि कर सकते हैं कि 'उपयोग' का उपयोग कर नया राज्य सेट 'ट्रांज़िशन()' पर दिए गए आंशिक फ़ंक्शन के संबंधित मामले में उपलब्ध है या नहीं? – Mullefa

+1

इसे 'nextStateData' के रूप में उपलब्ध होना चाहिए। –

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