下列代码的push方法把全部数据都添加进去了,如何才能一点点把数据添加进去fetch_data(json_data: any) { let self = this let ctrl = new AbortController() // console.log('ctrl', ctrl) fetchEventSource('http://10.110.133.8/apiv2/videomgr/query', { method: 'POST', signal: ctrl.signal, headers: { 'Content-Type': 'application/json', accept: 'text/event-stream' }, body: JSON.stringify(json_data), async onmessage(event: EventSourceMessage) { console.log('event', event) if (event.data === '') return self.list.push({ name: 'xs', msg: event.data }) }, async onopen(response: any) { // 开始 console.log('rerere', response) } }) }
时间: 2024-02-06 10:02:15 浏览: 185
jquery中push()的用法(数组添加元素)
根据你提供的代码,push方法确实会将所有数据都添加到self.list数组中。如果你想一点一点地将数据添加到数组中,可以修改代码如下:
```javascript
fetch_data(json_data: any) {
let self = this
let ctrl = new AbortController()
// console.log('ctrl', ctrl)
fetchEventSource('http://10.110.133.8/apiv2/videomgr/query', {
method: 'POST',
signal: ctrl.signal,
headers: {
'Content-Type': 'application/json',
accept: 'text/event-stream'
},
body: JSON.stringify(json_data),
async onmessage(event: EventSourceMessage) {
console.log('event', event)
if (event.data === '') return
self.list.push({
name: 'xs',
msg: event.data
})
// 在这里进行一次数据添加后的处理
// 例如,可以调用一个方法或者触发一个事件来处理已添加的数据
self.handleDataAddition()
},
async onopen(response: any) {
// 开始
console.log('rerere', response)
}
})
}
```
在代码中,我添加了一个新的方法`handleDataAddition()`,它会在每次数据被添加到数组后被调用。你可以在这个方法中进行你希望的逻辑处理,比如更新界面或执行其他操作。
这样修改后,每次接收到新数据时,只会将当前数据添加到数组中,并且会立即触发`handleDataAddition()`方法来处理已添加的数据。这样可以实现逐步添加数据到数组的效果。
阅读全文