我有如下所示的任意对象数组:
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));