最近在做一个chat相关的功能,然后由于接口返回特别特别慢,所以需要搞一个慢慢等待的效果,就是接口一个单词一个单词的返回,然后前端收到一个展示一个,提升用户体验。
看其他文档都说使用EventSource即可,就是传说中的sse【server-send-events】。记录下使用方法。
import { fetchEventSource } from '@microsoft/fetch-event-source'
getStream(payload: any, url: string) {
const token = access_token;
let that = this;
let headers: any = {
Authorization: `Bearer ${token}`,
};
if (url == 'content') {
headers = {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
};
}
try {
this.fetchSource = fetchEventSource(
`${serviceUrl}/api/v1/${url}`,
{
method: 'POST',
headers: headers,
signal: this.ctrl.signal,
openWhenHidden: true,
body: url =