gpt4 book ai didi

javascript - 如何链接 eventemitter next 方法?

转载 作者:行者123 更新时间:2023-11-30 14:41:17 25 4
gpt4 key购买 nike

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

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

最佳答案

EventEmitter 是对 RxJS Subject 的抽象(这是一个有变化的主题),Subject 实现了 ObservableObservernext 不是运算符,可以在 Observer 中看到next 不返回任何值且无法链接的接口(interface)。

对于上面的代码,EventEmitteremit 方法,而 next 属于 Subject API ,所以 emit 应该是首选:

@Output() myEvent = new EventEmitter<string>();
this.myEvent.emit({‘test string’});

没有onComplete方法,也不需要它。在组件销毁之前,输出应该保持不完整。

可以用

this.myEvent.subscribe(null, null, () => console.log('done'));

但这会导致额外的订阅。所有销毁逻辑都应该转到相应的生命周期钩子(Hook):

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

关于javascript - 如何链接 eventemitter next 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com