Skip to content

Commit e886f12

Browse files
author
Eetay Natan
committed
added 'last_started' and no more calling promises generator once 'null' is returned once
1 parent 60a19dd commit e886f12

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

promise-pool.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ function promisePool({max_parallel, next_promise, next_promise_data, threads, pr
44
threads: max_parallel || threads,
55
started: 0,
66
ended: 0,
7+
last_started: false,
78
promises_generator: Array.isArray(promises_generator) ? [...promises_generator] : promises_generator,
89
next_promise_data: next_promise_data || context_data,
910
results: []
@@ -17,8 +18,9 @@ function promisePool({max_parallel, next_promise, next_promise_data, threads, pr
1718
data: self.next_promise_data,
1819
ended: false
1920
}
20-
let next = null
21-
if (promises_generator.next) next = promises_generator.next().value
21+
let next
22+
if (self.last_started) next = null
23+
else if (promises_generator.next) next = promises_generator.next().value
2224
else if (Array.isArray(self.promises_generator)) next = self.promises_generator.shift()
2325
else next = self.promises_generator({ index: self.started, data: self.next_promise_data })
2426
if (next && next.then) {
@@ -38,6 +40,7 @@ function promisePool({max_parallel, next_promise, next_promise_data, threads, pr
3840
startNext(self, thread)
3941
})
4042
} else {
43+
self.last_started = true
4144
self.live -= 1
4245
if (self.live <= 0) {
4346
resolve(self.results)

0 commit comments

Comments
 (0)