2016-07-01 8 views
-1

Ich habe jede Array von Objekten, wie unten dargestellt:JavaScript ES6 Versprechen mit Angular2 - undefinierte Variable

let PAGES = [ 
    new BasePage(
    'home', 
    'test') 
]; 

let pagesPromise = Promise.resolve(PAGES); 

Ich bin jetzt unten durch den Aufruf der Methode zurückzukehren, um eine BasePage Objekt versucht.

getPageByPage(name: string): BasePage { 

    let page: BasePage; 

    pagesPromise. 
    then(pages => page = pages.find(p => p.name === name)); 

    return page; 

} 

Die Variable page ist nicht definiert - Ich bin nicht sicher, wie dies zu umgehen. Außerdem bin ich mir auch nicht sicher, ob ich das Versprechensprinzip missbrauche.

Antwort

0

return page wird vor der Auflösung der pagesPromise ausgeführt. Die Variable page enthält nur das Ergebnis der .find-Datei in der Auflösungsfunktion, die sie aufgerufen hat.