JavaScript ES6对Angular2的承诺——未定义的变量

JavaScript ES6 promise with Angular2 - undefined variable

本文关键字:未定义 变量 ES6 承诺 Angular2 JavaScript      更新时间:2023-09-26

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

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;
}

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

return page在pagesPromise的解析之前被执行。变量page将只包含调用它的解析函数中.find的结果…

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