angular - 为什么我在 Angular 6 中的服务出现错误?
问题描述
我有一个服务:
import { EventEmitter, Injectable } from '@angular/core';
@Injectable()
export class PingOnActionListenerService {
removingListener = new EventEmitter();
removeListener(): void {
this.removingListener.emit();
}
在组件 AI 调用服务:
this._pingOnActionListenerService.removeListener();
在组件 BI 上要监听服务:
ngOnInit() {
this._pingOnActionListenerService.removingListener.subscribe(this.deactivatelistener());
}
deactivatelistener() {
window.removeEventListener('click', this.pingIfLastPingIsOld);
}
当我运行此代码时,我在控制台收到错误消息:
core.js:1671 错误类型错误:generatorOrNext 不是 SafeSubscriber.schedulerFn [as _next] (core.js:3565) 处 SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub 的函数(Subscriber.js:195) 在 SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.next (Subscriber.js:133) 在 Subscriber.push../node_modules/rxjs/_esm5/internal /Subscriber.js.Subscriber._next (Subscriber.js:77) 在 Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54) 在 EventEmitter.push.. /node_modules/rxjs/_esm5/internal/Subject.js.Subject.next (Subject.js:47) 在 EventEmitter.push../node_modules/@angular/core/fesm5/core.js.EventEmitter.emit (core.js :3537) 在PingOnActionListenerService.push../src/app/core/services/ping-on-action/ping-on-action-listener.service.ts.PingOnActionListenerService.removeListener (ping-on-action-listener.service.ts:19) 在 CatchSubscriber.selector (logging-interceptor.ts:45) 在 CatchSubscriber.push../node_modules/rxjs/_esm5/internal/operators/catchError.js.CatchSubscriber.error (catchError.js:33)
解决方案
虽然与 OP 的问题没有直接关系,但我将其发布以防它对其他人有所帮助。
错误generatorOrNext is not a function
可能是由执行类似于以下的操作引起的,其中没有传递给 .subscribe() 的回调。
this.subject.valueChanges.subscribe(
// (newVal) => console.log(newVal)
);
推荐阅读
- google-cloud-endpoints - 如何在 Google Endpoints 中启用 https
- html - 在 SCSS 语法中自定义单选按钮
- java - 图像大小调整,保留比例为全场景
- dictionary - 映射函数类型中的 Dart 类继承
- aws-lambda - 如何在嵌套地图 DynamoDb 中进行更新
- user-interface - 为什么我的领英分享按钮不起作用?
- android - 为什么很多例子都使用 GlobalScope for android OnClickListener?
- java - Spark,NegativeArraySizeException 时序列文件
- javascript - asp.net 弹出窗口无响应显示输入结束
- java - 以 0.00 精度从 mysql 获取双精度