angular - 导入内部函数返回 ZoneAwarePromise
问题描述
导入内部函数返回 ZoneAwarePromise
下面是我使用的代码
page_types = [
{
name: 'anime',
loadComponent: () => import('./anime/anime.component').then(c => c.AnimeComponent)
}
];
getPageType(name){
for (var i=0; i < this.page_types.length; i++) {
if (this.page_types[i].name == name) {
return this.page_types[i].loadComponent();
}
}
}
constructor(
console.log(this.getPageType('anime'));
){}
控制台中的响应
ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
我希望输出是组件类
解决方案
import('./anime/anime.component')
是一个异步操作,这就是为什么loadComponent
函数返回一个Promise,反过来getPageType(name)
也返回一个 Promise。所以预计控制台日志中会有ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}。
如果你想要控制台日志中的组件类,你应该处理返回的 Promise。
constructor() {
this.getPageType('anime').then(x => {
console.log(x.name);
})
}
推荐阅读
- angular - 通过映射另一个 Observable 返回一个 Observable
- swift - ScrollView 中的 TextView - 在 typig 上禁用自动滚动?
- python - 在 Python 中将 Outlook 日期时间转换为日期
- ruby-on-rails - `a ||= b` 和 `a = b if a.nil 之间的区别?
- android - 我的平板电脑中的 ConstraintLayout 非常慢
- c++ - Redhat Linux - 未找到 SO 文件
- android - 是否有任何 API 可以检查 WiFi 是否已连接到 Internet?
- ios - Havok Project Anarchy 游戏引擎重复符号与 Google Analytics 库
- python - 在 .py 文件中使用 .py 文件
- php - 从 Nusoap 返回数组(未定义索引)