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

RxJS调用throwError出现'(error: any): Observable<never>'签名弃用警告如何解决

RxJS 7.0 之后调整了throwError的API签名,直接传入错误值的用法已被废弃,新版本要求传入一个返回错误值的工厂函数,实现错误的惰性初始化,避免未订阅时不必要的错误对象创建开销。

修复方案非常简单,将代码中触发警告的return throwError(error)替换为:

return throwError(() => error);

修改后的完整可运行代码如下:

const { Observable, throwError } = rxjs;
const { catchError } = rxjs.operators;

new Observable((observer) => {
  observer.next('first emission');
  observer.error('error emission');
  observer.complete();
}).pipe(
  catchError((error) => {
    console.log('Caught error:', error);
    return throwError(() => error);
  })
).subscribe({
  next: (value) => console.log('Next:', value),
  error: (error) => console.log('Error:', error),
  complete: () => console.log('Complete')
});

配套的样式与RxJS引入代码保持不变即可:

.as-console-wrapper { max-height: 100% !important; top: 0px }
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/7.4.0/rxjs.umd.min.js"></script>

如果需要自定义错误类型,可直接在工厂函数中生成错误实例:

return throwError(() => new Error(`自定义错误信息:${error}`));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:06:08