angular - 如果该文件不存在,我该如何指向另一个文件?
问题描述
我正在使用 Angular 6,我正在尝试检查_appconfig.json
文件是否存在于根目录中。如果该文件不存在,我想将 http.get() 调用指向另一个 URL。不过,我似乎无法让事情表现得像我想要的那样,并且想知道是否有人可以在这里帮助我。
如果所述文件不存在,我该怎么做才能更改 URL?
configUrl = "_appconfig.json";
constructor(private http: HttpClient) {}
data: any;
getConfig(): Promise<configType> {
return this.http
.get(this.configUrl)
.toPromise()
.then(response => response as configType)
.catch(this.handleError);
}
对于它的价值,如果文件确实存在,这将按预期运行。
解决方案
这可能是一个可以帮助您的解决方案。重要的是捕获错误,如果错误恰好是 404 错误,您可以确定该文件未找到。
我建议您使用 oberservables 而不是 Promise,但它们也应该以类似的方式工作。
这是一个我尝试加载“test.txt”的示例,如果找不到该文件,我将加载 second.json。
private loadMainFile() {
this.httpClient.get('/asset/test.txt').subscribe(() => {
// HANDLE file found
}, (err) => {
// HANDLE file not found
if (err.status === 404) {
this.loadSecondFile();
}
});
}
private loadSecondFile() {
this.httpClient.get('/asset/second.json').subscribe(() => {
// HANDLE file found
}, () => {
// HANDLE file not found
});
}
推荐阅读
- ruby-on-rails - 可以将 Ruby 编译/编码为二进制以隐藏代码吗?
- sql - SQL Tuning advisor 不显示 exec sp_executesql 的提示
- python - 无法在 C# 中导入 python 类
- php - PHP 警告:PHP 启动:无法加载动态库 'c:\\php\\ext\\php_ldap.dll'
- reactjs - 记忆 JSX 元素以便稍后在道具中将它们传递给拥有的组件是否安全?
- visual-c++ - 如何使用 Application Verifier 在我的 DLL 中查找堆损坏?
- php - 通过导入创建时,SKU 无法搜索 WooCommerce 产品
- matlab - 将 RGB 图像与点云匹配
- react-native - 我可以在平面列表中使用 ItemSeparatorComponent 中的组件吗?
- php - 如何获取通过特定策略的所有用户的列表?