带Angular2的JavaScript ES6承诺-未定义变量

带Angular2的JavaScript ES6承诺-未定义变量,javascript,typescript,angular,ecmascript-6,Javascript,Typescript,Angular,Ecmascript 6,我有如下所示的任意对象数组: let PAGES = [ new BasePage( 'home', 'test') ]; let pagesPromise = Promise.resolve(PAGES); 我现在试图通过调用下面的方法返回BasePage对象 getPageByPage(name: string): BasePage { let page: BasePage; pagesPromise. then(pages => page

我有如下所示的任意对象数组:

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

let pagesPromise = Promise.resolve(PAGES);
我现在试图通过调用下面的方法返回
BasePage
对象

getPageByPage(name: string): BasePage {

  let page: BasePage;

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

  return page;

}

变量
页面
未定义-我不知道如何解决这个问题。此外,我也不确定我是否滥用了承诺原则。

返回页面
在页面请求解析之前执行。变量
页面
将仅包含调用它的解析函数中的.find的结果

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