2014-10-30 3 views
5

In Koa posso accesss un contesto Koa nella prima funzione generatore tramite this:Come accedere al contesto koa in un'altra funzione del generatore?

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

Ma se io cedo a un'altra funzione generatore non posso accedere al contesto tramite this più.

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

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

Sono stato in grado di passare semplicemente il contesto per la seconda funzione del generatore, ma chiedevo se c'è un modo più pulito per accedere al contesto.

Qualche idea?

risposta

12

O passare this come argomento, come lei ha detto:

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

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

o utilizzare apply():

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

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

funziona come un fascino. Saluti Vinicius! – Felix

+0

Cosa succede se la mia funzione di generatore ha altri argomenti che voglio passare? – teradyl