You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 16中angular-progress-http包导入报错求助

Angular 16 下 angular-progress-http 报错问题解决
  • 先核实兼容性:angular-progress-http 最新版本是否明确适配 Angular 16。Angular 16 对 HttpClient 模块的内部逻辑、依赖注入机制有细节调整,不少未及时维护的第三方包会因 API 不兼容失效。
  • 调整导入与注册方式:尝试放弃导入 ProgressHttpModule,直接导入服务并手动注册。比如:
    // 组件/服务中导入
    import { ProgressHttp } from 'angular-progress-http';
    // 在模块的 providers 数组中添加
    providers: [ProgressHttp]
    
  • 聚焦控制台错误:编辑器无报错但运行时出错,控制台的具体错误信息是核心线索——比如 NullInjectorError 说明依赖注入失败,Module not found 可能是包的路径结构变更,针对性处理。
  • 替代方案(推荐):如果该包已停止维护,直接用 Angular 原生 HttpClient 实现进度监听,无需依赖第三方包:
    import { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http';
    
    constructor(private http: HttpClient) {}
    
    trackUploadProgress(file: File) {
      const formData = new FormData();
      formData.append('uploadFile', file);
    
      const request = new HttpRequest('POST', '/api/upload', formData, {
        reportProgress: true
      });
    
      this.http.request(request).subscribe(event => {
        if (event.type === HttpEventType.UploadProgress) {
          const progress = Math.round(100 * (event.loaded / (event.total || 1)));
          console.log(`上传进度:${progress}%`);
        } else if (event.type === HttpEventType.Response) {
          console.log('上传完成,响应数据:', event.body);
        }
      });
    }
    
  • 清理依赖缓存:执行 npm ci 彻底清理并重新安装依赖,避免缓存导致的版本不匹配问题。

内容的提问来源于stack exchange,提问作者Vinodh Ganesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:20:00