【问题标题】:JavaScript ES6 promise with Angular2 - undefined variableAngular2 的 JavaScript ES6 承诺 - 未定义的变量
【发布时间】:2016-07-01 01:01:42
【问题描述】:

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

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 未定义 - 我不知道如何解决这个问题。此外,我也不确定我是否在滥用承诺原则。

【问题讨论】:

    标签: javascript typescript angular ecmascript-6


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 2017-03-12
      相关资源
      最近更新 更多