在Angular 7中使用EventSource存在一些问题,特别是在订阅事件源时可能会遇到一些困难。下面是一个解决方法的示例代码:
import { Component } from '@angular/core';
@Component({
selector: 'app-event-source',
templateUrl: './event-source.component.html',
styleUrls: ['./event-source.component.css']
})
export class EventSourceComponent {
subscribeToEventSource() {
const eventSource = new EventSource('/api/events');
eventSource.onmessage = (event) => {
console.log('Received event:', event.data);
};
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { EventSourceComponent } from './event-source/event-source.component';
const routes: Routes = [
{ path: 'event-source', component: EventSourceComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
需要注意的是,由于EventSource是使用浏览器的原生API实现的,因此它可能不适用于所有浏览器。在使用EventSource之前,请确保你的目标浏览器支持该API。如果不支持,你可能需要使用其他方法来实现类似的功能。