如何解决Angular 11:订阅已弃用:改用观察者?
我的 tslint 疯了?它为我在整个应用程序中所做的每个订阅发出警告。无论我使用旧的还是新的语法都没有关系,它仍然说 subscribe 已被弃用...如何编写一个不会被弃用的订阅?
直到今天还好:
something.subscribe((user: User) => {
this.userProviderService.setUserId(user.userId);
this.proceed = true;
});
我尝试了新语法但没有改变:
something.subscribe({
next: (user: User) => {
this.userProviderService.setUserId(user.userId);
this.proceed = true;
},complete: () => {},error: () => {}
});
这正是它所说的:
(method) Observable.subscribe(next?: (value: Object) => void,错误?:(错误:任何)=>无效,完整?:()=>无效):订阅(+4 重载) @deprecated — 使用观察者而不是完整的 回调
@deprecated — 使用观察者而不是错误回调
@deprecated — 使用观察者而不是完整的回调
subscribe 已弃用:使用观察者而不是完整的 回调(弃用)tslint(1)
那么我现在如何订阅东西?
解决方法
我刚刚在 VS Code 扩展选项卡中查找了 TSLint (v1.3.3)。它说:
❗重要提示:TSLint 已被弃用,取而代之的是 ESLint。
当我禁用 TSLint 并安装 ESLint 时,所有与订阅相关的警告都消失了。
干杯!
,要回答您的问题“那么我现在如何订阅内容”: https://rxjs-dev.firebaseapp.com/guide/observer 就是这个。它易于使用并且与之前所做的非常相似,只是做了一些小改动,现在它实际上接受了一个带有 3 个键的对象(观察者):next、error、complete。
我们在 2 天前在工作中进行了相同的讨论,尽管您可以/应该使用观察者,但弃用似乎是误报。 (我们认为我们必须更改大约 900 个订阅):
这是在 rxjs github 页面上创建的关于此问题的问题:https://github.com/ReactiveX/rxjs/issues/6060
其中开发人员说这是由于打字稿错误:https://github.com/microsoft/TypeScript/issues/43053
此错误已于 3 天前修复,但我不确定它是否已在最新版本中:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。