- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经实现了一个由 APP_INITIALIZER 触发的 httpCall,它返回一个 URL,然后我想将其用于另一个嵌套的 httpCall:
getAppSettings(): Observable<IAppSettings> {
return (this.httpClient
.get<IAppSettings>(this.localbaseUrl)
.pipe(
catchError(this.errorHandlerSerevice.handleError)
)) as any;
}
getConfigValues(): Promise<void> {
return this.getAppSettings()
.toPromise()
.then(data => {
this.exampleUrl = data;
this.getOtherStuff().subscribe(data => this.stuff = data);
});
}
getOtherStuff(): Observable<any[]> {
return (this.httpClient
.get<any[]>(this.exampleUrl)
.pipe(
catchError(this.errorHandlerSerevice.handleError)
)) as any;
}
这个实现是错误的,在页面刷新时会抛出以下错误:
Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
来自 this.stuff[] 没有被及时填充(第二个,嵌套的 httpClient 可观察调用)。
我如何正确实现/嵌套那些 httpClient 调用。请注意我使用 Angular 6 和 httpClient,请不要建议旧的 http get 解决方案。
最佳答案
事实证明,您不能将 Observable 嵌套在由 APP_INITIALIZER 初始化的 Promise 中。嵌套调用也需要是一个 Promise。查看现在正确分配 this.stuff 的修改方法:
getConfigValues(): Promise<void> {
return this.getAppSettings()
.toPromise()
.then(data => {
this.exampleUrl = data;
}).then(() => {
return this.getOtherStuff()
.toPromise()
.then(data => {
this.stuff = data;
});
}
);
}
关于angular - 如何嵌套包裹在 APP_INITIALIZER 中的 httpclient 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53320136/
我有一个简单的配置服务,我在我的 app.shared.module.ts 中使用 APP_INITIALIZER token 连接: ConfigService, {
我正在尝试使用 auth0/auth0-angular Angular 11 应用程序中的库。 我正在关注 loading config dynamically 上的部分. 它提供了这个示例应用模块代
我有一个延迟加载的模块,我正在尝试添加 APP_INITIALIZER 但它没有触发。我的语法与我的主应用程序完全相同,它按预期工作。延迟加载的模块是否会触发 APP_INITIALIZER? 最佳答
我正在使用 APP_INITIALIZER Hook 从本地 json 文件加载一些应用配置。加载配置后,我想在另一个提供程序中使用它(为我生成的 swagger-codegen 服务设置 BASE_
我有一个 Angular (v6.0.0) 应用程序,我正试图通过在 APP_INITIALIZER 期间引入运行时配置来设置它。我已经阅读了几篇文章(例如 this 和 this 和 this )以
我正在使用 APP_INITIALIZER 加载环境特定变量。我需要在我的 authConfigFactory 中使用这些变量,但工厂会在 APP_INITIALIZER 完成应用程序配置之前继续加载
我正在使用这个 gist在应用程序启动期间读取配置文件。这工作正常,但在进行单元测试时出现错误 Cannot read property 'SomeProperty' of null。 我也添加了pr
我正在使用 this 中推荐的 APP_INITIALIZER回答,我的服务返回一个 promise ,但它并不总是等待它解决,我可以看到我的组件 console.logging 未定义,然后服务记录
我有一个 Angular 5.2.0 应用程序。我查找了如何实现 APP_INITIALIZER在应用程序启动之前加载配置信息。这里是 app.module 的摘录: providers: [
typescript :2.2.0 Angular :4.0 我试图通过使用 APP_INITIALIZER 确保在应用程序启动之前初始化 ConfigService 对象。我发现了很多关于如何执行此
在我的 Angular 6 应用程序中,我通过这样的 Http 服务加载我的外部化配置: export function getSettings(appLoadService: ConfigLoadS
问题是:我需要进行 http 调用并存储生成动态路由所需的对象。所以,我正在利用 APP_INITIALIZER。 // app.module.ts import { ApplicationServi
我在使用 Angular APP_INITIALIZER 加载配置文件时遇到问题。 它似乎服务开始加载 APP_INTIALIZER,因此配置文件无法到达服务, 并且在配置文件需要在服务启动之前进行设
如何在 Angular 应用程序执行 app_initializer 代码时显示等待指示器。 截至目前,我可以在加载应用程序之前显示等待指示器。但是在该页面保持空白直到 app_initializer
背景:我需要在应用程序启动期间执行几次初步检查(1)从./assets/config.json文件读取angular应用程序配置并从那里获取API端点,(2)进行API调用到端点在第一步中检索并从后端
类似于Angular 5 APP_INITIALIZER gives Cyclic dependency error 我有一个使用 Angular 5 和 SSR 的应用程序,我刚刚从 Angular
我有一个来自静态 AppConfigService 的配置文件的值。 说明如下: 引用代码/文章:https://blogs.msdn.microsoft.com/premier_developer/
我在使用 Angular 4 时遇到了一些引导问题。我有一个配置文件 (json),我在应用程序启动时从服务器加载它(另请参见 here )。这到目前为止有效。 现在我有一个 dependency这需
我正在寻找能让我在某个模块初始化时执行代码的东西。这个模块在我的应用程序中是延迟加载的。 APP_INITIALIZER 仅适用于应用程序初始化过程(一次从引导的主模块开始)。 我不能使用延迟加载模块
我正在尝试一个简单的 APP_INITIALIZER使用我的 angular 应用程序,但出现错误 this.appInits[i] is not a function - 无法弄清楚问题。 这是我的
我是一名优秀的程序员,十分优秀!