Fix memory leak with abort controller
This commit is contained in:
parent
19878f6e28
commit
698021baf1
|
@ -47,7 +47,6 @@ export class ChatRequest {
|
|||
count = count || 1
|
||||
_this.updating = true
|
||||
_this.updatingMessage = 'Generating Image...'
|
||||
const signal = _this.controller.signal
|
||||
const size = this.chat.settings.imageGenerationSize
|
||||
const request: RequestImageGeneration = {
|
||||
prompt,
|
||||
|
@ -55,6 +54,16 @@ export class ChatRequest {
|
|||
size,
|
||||
n: count
|
||||
}
|
||||
// fetchEventSource doesn't seem to throw on abort,
|
||||
// so we deal with it ourselves
|
||||
_this.controller = new AbortController()
|
||||
const signal = _this.controller.signal
|
||||
const abortListener = (e:Event) => {
|
||||
chatResponse.updateFromError('User aborted request.')
|
||||
signal.removeEventListener('abort', abortListener)
|
||||
}
|
||||
signal.addEventListener('abort', abortListener)
|
||||
// Create request
|
||||
const fetchOptions = {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
@ -180,7 +189,15 @@ export class ChatRequest {
|
|||
// (streaming doesn't return counts, so we need to do it client side)
|
||||
chatResponse.setPromptTokenCount(promptTokenCount)
|
||||
|
||||
// fetchEventSource doesn't seem to throw on abort,
|
||||
// so we deal with it ourselves
|
||||
_this.controller = new AbortController()
|
||||
const signal = _this.controller.signal
|
||||
const abortListener = (e:Event) => {
|
||||
chatResponse.updateFromError('User aborted request.')
|
||||
signal.removeEventListener('abort', abortListener)
|
||||
}
|
||||
signal.addEventListener('abort', abortListener)
|
||||
|
||||
const fetchOptions = {
|
||||
method: 'POST',
|
||||
|
@ -192,15 +209,6 @@ export class ChatRequest {
|
|||
signal
|
||||
}
|
||||
|
||||
// fetchEventSource doesn't seem to throw on abort,
|
||||
// so we deal with it ourselves
|
||||
const abortListener = (e:Event) => {
|
||||
_this.controller = new AbortController()
|
||||
chatResponse.updateFromError('User aborted request.')
|
||||
signal.removeEventListener('abort', abortListener)
|
||||
}
|
||||
signal.addEventListener('abort', abortListener)
|
||||
|
||||
if (opts.streaming) {
|
||||
/**
|
||||
* Streaming request/response
|
||||
|
|
Loading…
Reference in New Issue