Skip to content

Commit edfa360

Browse files
committed
Ensure listen doesn't reconnect if first connect throws
1 parent 84583e0 commit edfa360

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/index.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,25 +162,25 @@ function Postgres(a, b) {
162162

163163
const channels = listen.channels || (listen.channels = {})
164164
, exists = name in channels
165-
, channel = exists ? channels[name] : (channels[name] = { listeners: [listener] })
166165

167166
if (exists) {
168-
channel.listeners.push(listener)
167+
channels[name].listeners.push(listener)
169168
listener.onlisten && listener.onlisten()
170-
return Promise.resolve({ ...channel.result, unlisten })
169+
return Promise.resolve({ ...channels[name].result, unlisten })
171170
}
172171

173-
channel.result = await sql`listen ${ sql(name) }`
172+
const result = await sql`listen ${ sql(name) }`
173+
channels[name] = { result, listeners: [listener] }
174174
listener.onlisten && listener.onlisten()
175-
channel.result.unlisten = unlisten
175+
result.unlisten = unlisten
176176

177-
return channel.result
177+
return result
178178

179179
async function unlisten() {
180180
if (name in channels === false)
181181
return
182182

183-
channel.listeners = channel.listeners.filter(x => x !== listener)
183+
channels[name].listeners = channels[name].listeners.filter(x => x !== listener)
184184
if (channels[name].listeners.length)
185185
return
186186

0 commit comments

Comments
 (0)