2014-10-30 4 views
5

कोआ में मैं this के माध्यम से पहले जनरेटर समारोह में एक कोआ प्रसंग accesss कर सकते हैं:किसी अन्य जनरेटर फ़ंक्शन में कोआ संदर्भ का उपयोग कैसे करें?

app.use(function *(){ 
    this; // is the Context 
} 

लेकिन मैं अब और this के माध्यम से संदर्भ अभिगमन नहीं कर सकते मैं एक जनरेटर समारोह के लिए उपज।

app.use(function *(){ 
    yield myGenerator(); 
} 

function* myGenerator() { 
    this.request; // is undefined 
} 

मैं बस दूसरा जनरेटर कार्य करने के लिए संदर्भ पारित करने में सक्षम किया गया है, लेकिन सोच रहा था कि क्या वहाँ संदर्भ का उपयोग करने की एक क्लीनर तरीका है।

कोई विचार?

उत्तर

12

या तो के रूप में आप ने कहा कि एक तर्क के रूप this पारित:

app.use(function *(){ 
    yield myGenerator(this); 
}); 

function *myGenerator(context) { 
    context.request; 
} 

या apply() का उपयोग करें:

app.use(function *(){ 
    yield myGenerator.apply(this); 
}); 

function *myGenerator() { 
    this.request; 
} 
+0

वर्क्स एक आकर्षण की तरह। चीयर्स विनीसियस! – Felix

+0

क्या होगा यदि मेरे जनरेटर फ़ंक्शन में अन्य तर्क हैं जिन्हें मैं पास करना चाहता हूं? – teradyl

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