में जनरेटर मैं नोड जे एस में एक webapp पर काम कर रहा हूँ, कोआ ढांचे का उपयोग कर के साथ जे एस डिबग करने के लिए।बेहतर तरीका इंटेलीजे या WebStorm
सभी प्रवाह नियंत्रण, जेनरेटर के साथ किया जाता कॉलबैक के बजाय। कोड क्रमिक दिखता है, हालांकि वास्तविक प्रवाह नहीं है। वैसे भी यह बहुत साफ साफ कॉलबैक नरक दिखता है।
function *findUserById(userId)
{
var user = yield getUserOrError404(userId);
yield loadAdditionalData(user);
yield data.users.save(user);
return user;
}
Howeve वहाँ एक कठिनाई है:: मेरे आईडीई में yield
रों (IntelliJ विचार) के साथ कोड के माध्यम से कदम बहुत अच्छी तरह से काम नहीं करता है
यहाँ एक नियंत्रक समारोह koa के साथ लिखा का एक सरल उदाहरण है। एक बार निष्पादन yield
कथन के साथ लाइन पर है, अगर मैं बस "ऊपर कदम" करता हूं, तो निष्पादन प्रवाह कोआ कोड को ढेर कर देता है (यह वास्तव में आईडीई की गलती नहीं है क्योंकि यह जेनरेटर के निष्पादन के वास्तविक प्रवाह का पालन करता है , उपज बयान और नोड घटना पाश)।
वर्तमान में मैं अगले स्टेटमेंट मैं रोकने के लिए डिबगर, अक्सर अगली पंक्ति चाहते करने के लिए एक ब्रेकपाइंट सेट है, और "फिर से शुरू कार्यक्रम" बटन पर क्लिक करना होगा।
काफी थका देने बन सकता है जब एक से अधिक 2-3 उपज बयान कर रहे हैं।
वहाँ एक बेहतर तरीका है (चाल, प्लगइन, ...) जनरेटर भारी जे एस कोड है कि जैसे कि यह एक "सामान्य" अनुक्रमिक बयान थे एक उपज बयान पर कदम करने की अनुमति से निकलने के लिए?
ब्रेकपॉइंट्स विधि पर यह पहले से ही एक बड़ा सुधार है। धन्यवाद ! मेरी इच्छा है कि जेनरेटर कॉल पर पारदर्शी रूप से कदम उठाने के लिए एक और अधिक उन्नत "अनुकरण" विधि थी। मैं थोड़ी देर इंतजार करूंगा, शायद कोई ऐसे जादू के साथ आ सकता है ... अन्यथा मैं यह जवाब स्वीकार करूंगा। –
ओह, और नियमित डीबगिंग सत्रों के लिए भी उपयोगी;) –
मैं आपके उत्तर को स्वीकार करूंगा, उम्मीद है कि, कुछ दिन, इंटेलिजे जैसे टूल में "जनरेटर जागरूक" डिबगिंग मोड होता है जो उपज विवरणों पर पारदर्शी रूप से कदम उठाने की अनुमति देता है। –