Skip to content

Commit 49bcffa

Browse files
Remember when the response body is done and then always return None
1 parent ed29097 commit 49bcffa

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

libraries/common/io/requests.effekt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,19 +180,25 @@ namespace jsNode {
180180

181181
def getBody(r: NativeResponse): EffektAsyncIterator[js::NativeBytes] = {
182182
val nextResolve = ref(promise::make())
183+
val done = ref(false)
183184
r.events.js::on(js::ev::data(), box { chunk =>
184185
val waitingResolve = nextResolve.get().await()
185186
nextResolve.set(promise::make())
186187
waitingResolve.resolve(Some(chunk))
187188
})
188189
r.events.js::on(js::ev::end(), box { _ =>
189190
val waitingResolve = nextResolve.get().await()
190-
nextResolve.set(promise::make())
191+
//nextResolve.set(promise::make())
191192
waitingResolve.resolve(None())
193+
done.set(true)
192194
})
193195
EffektAsyncIterator(box {
194196
val resPromise = promise::make()
195-
nextResolve.get().resolve(resPromise)
197+
if (done.get()) {
198+
resPromise.resolve(None())
199+
} else {
200+
nextResolve.get().resolve(resPromise)
201+
}
196202
resPromise
197203
})
198204
}

0 commit comments

Comments
 (0)