fix: initialise stream promise before stream is available (#1191)

zio/stable
Daniel Roe 2023-01-15 20:26:59 +00:00 committed by GitHub
parent a594f6f167
commit cd8e2cb6a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -12,20 +12,24 @@ export const useNotifications = () => {
return return
const lastReadId = notifications[id]![1][0] const lastReadId = notifications[id]![1][0]
notifications[id]![1] = [] notifications[id]![1] = []
if (lastReadId) {
await client.v1.markers.create({ await client.v1.markers.create({
notifications: { lastReadId }, notifications: { lastReadId },
}) })
} }
}
async function connect(): Promise<void> { async function connect(): Promise<void> {
if (!isHydrated.value || !id || notifications[id] || !currentUser.value?.token) if (!isHydrated.value || !id || notifications[id] || !currentUser.value?.token)
return return
let resolveStream
const stream = new Promise<WsEvents>(resolve => resolveStream = resolve)
notifications[id] = [stream, []]
await until($$(canStreaming)).toBe(true) await until($$(canStreaming)).toBe(true)
const stream = client.v1.stream.streamUser() client.v1.stream.streamUser().then(resolveStream)
notifications[id] = [stream, []]
stream.then(s => s.on('notification', (n) => { stream.then(s => s.on('notification', (n) => {
if (notifications[id]) if (notifications[id])
notifications[id]![1].unshift(n.id) notifications[id]![1].unshift(n.id)