まず第一に、私は ng2 と typescript にまったく慣れていません。
私が達成しようとしているのは、Angular2 コンポーネントに Server-Sent イベントを実装することです。ここの初期の投稿で言及されている例に従いましたが、私の問題は、「EventSource」オブジェクトが認識されないことです (VS Code の赤い下線)。
いくつかの参照が欠落しているかどうかわかりません...私の参照は次のとおりです。
<!-- IE required polyfills, in this exact order -->
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
これは、eventsource クライアントを実装した方法です。
ngOnInit() {
const observable = Observable.create(observer => {
const eventSource = new EventSource(/API_URL); //Cannot find EventSource
eventSource.onmessage = x => observer.next(x.data);
eventSource.onerror = x => observer.error(x);
return () => {
eventSource.close();
};
});
observable.subscribe({
next: guid => {
this.zone.run(() => this.someStrings.push(guid));
},
error: err => console.error('something wrong occurred: ' + err)
});