Javascript 下一个方法如何链接?

Javascript 下一个方法如何链接?,javascript,angular,typescript,Javascript,Angular,Typescript,一旦事件发出并完成,我想执行一些其他代码。有没有办法像这样链接.next()块 @Output() myEvent = new EventEmitter<string>(); this.myEvent.next({‘test string’}).onComplete(console.log('done'); @Output()myEvent=neweventemitter(); this.myEvent.next({'teststring'}).onComplete(console

一旦事件发出并完成,我想执行一些其他代码。有没有办法像这样链接.next()块

@Output() myEvent = new EventEmitter<string>();
this.myEvent.next({‘test string’}).onComplete(console.log('done');
@Output()myEvent=neweventemitter();
this.myEvent.next({'teststring'}).onComplete(console.log('done');

否,无法从发出事件的组件中监视此事件,因为这应该是一种“触发并忘记”的行为


您可以定义另一个@Input值,该值在“事件后操作”完成后立即由父组件发出。如果您监视它,您肯定知道何时开始后续操作。

EventEmitter
是对RxJS
主题的抽象(这是一个需要更改的主题)和
Subject
实现了
observatable
observator
next
不是一个操作符,可以在界面中看到
next
不返回值并且不能链接

对于上面的代码,
EventEmitter
emit
方法,而
next
属于
Subject
API,因此应该首选
emit

@Output() myEvent = new EventEmitter<string>();
this.myEvent.emit({‘test string’});
但这将导致额外订阅。所有销毁逻辑都应转到各自的生命周期挂钩:

ngOnDestroy() {
  console.log('done');
}

你所说的事件“完成”是什么意思?事件在你对其调用
next
时发出。如果你需要等待事件的某个消费者对其进行处理,你需要让消费者告诉你这一点。共享服务是一种方法。
ngOnDestroy() {
  console.log('done');
}