[angular] Angular 2에서 EventEmitter.next ()와 EventEmitter.emit ()의 차이점
EventEmitter.emit()
과 의 차이점은 무엇입니까 EventEmitter.next()
? 둘 다 구독 된 리스너에게 이벤트를 전달합니다.
export class MyService {
@Output() someEvent$: EventEmitter<any> = new EventEmitter();
someFunc() {
this.someEvent$.emit({myObj: true});
this.someEvent$.next({myObj: true});
}
}
EventEmitter에 대한 documenation는 순간에 그렇게 도움이되지 않습니다.
답변
그들은 똑같이합니다. emit()
현재 버전 next()
이며 더 이상 사용되지 않습니다.
답변
최신 버전 (Ng9)의 소스 코드는 event_emitter.ts
다음과 같습니다.
export class EventEmitter<T extends any> extends Subject<T> {
/**
* Emits an event containing a given value.
* @param value The value to emit.
*/
emit(value?: T) { super.next(value); }
}
EventEmitter
부모 클래스에서 확장됩니다 Subject
. 그리고 예상대로 emit
메서드 호출 super.next()
.