run disconnect-related writes in parallel
This commit is contained in:
parent
18844d2c55
commit
cd9c7983c8
1 changed files with 55 additions and 45 deletions
|
|
@ -372,50 +372,13 @@ const cleanup = async pub => {
|
||||||
|
|
||||||
const outGoingID = await Utils.recipientToOutgoingID(pub)
|
const outGoingID = await Utils.recipientToOutgoingID(pub)
|
||||||
|
|
||||||
await new Promise((res, rej) => {
|
const promises = []
|
||||||
user
|
|
||||||
.get(Key.USER_TO_INCOMING)
|
|
||||||
.get(pub)
|
|
||||||
.put(null, ack => {
|
|
||||||
if (ack.err) {
|
|
||||||
rej(new Error(ack.err))
|
|
||||||
} else {
|
|
||||||
res()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
await new Promise((res, rej) => {
|
promises.push(
|
||||||
user
|
new Promise((res, rej) => {
|
||||||
.get(Key.RECIPIENT_TO_OUTGOING)
|
|
||||||
.get(pub)
|
|
||||||
.put(null, ack => {
|
|
||||||
if (ack.err) {
|
|
||||||
rej(new Error(ack.err))
|
|
||||||
} else {
|
|
||||||
res()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
await new Promise((res, rej) => {
|
|
||||||
user
|
|
||||||
.get(Key.USER_TO_LAST_REQUEST_SENT)
|
|
||||||
.get(pub)
|
|
||||||
.put(null, ack => {
|
|
||||||
if (ack.err) {
|
|
||||||
rej(new Error(ack.err))
|
|
||||||
} else {
|
|
||||||
res()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
if (outGoingID) {
|
|
||||||
await new Promise((res, rej) => {
|
|
||||||
user
|
user
|
||||||
.get(Key.OUTGOINGS)
|
.get(Key.USER_TO_INCOMING)
|
||||||
.get(outGoingID)
|
.get(pub)
|
||||||
.put(null, ack => {
|
.put(null, ack => {
|
||||||
if (ack.err) {
|
if (ack.err) {
|
||||||
rej(new Error(ack.err))
|
rej(new Error(ack.err))
|
||||||
|
|
@ -424,7 +387,56 @@ const cleanup = async pub => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
promises.push(
|
||||||
|
new Promise((res, rej) => {
|
||||||
|
user
|
||||||
|
.get(Key.RECIPIENT_TO_OUTGOING)
|
||||||
|
.get(pub)
|
||||||
|
.put(null, ack => {
|
||||||
|
if (ack.err) {
|
||||||
|
rej(new Error(ack.err))
|
||||||
|
} else {
|
||||||
|
res()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
promises.push(
|
||||||
|
new Promise((res, rej) => {
|
||||||
|
user
|
||||||
|
.get(Key.USER_TO_LAST_REQUEST_SENT)
|
||||||
|
.get(pub)
|
||||||
|
.put(null, ack => {
|
||||||
|
if (ack.err) {
|
||||||
|
rej(new Error(ack.err))
|
||||||
|
} else {
|
||||||
|
res()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
if (outGoingID) {
|
||||||
|
promises.push(
|
||||||
|
new Promise((res, rej) => {
|
||||||
|
user
|
||||||
|
.get(Key.OUTGOINGS)
|
||||||
|
.get(outGoingID)
|
||||||
|
.put(null, ack => {
|
||||||
|
if (ack.err) {
|
||||||
|
rej(new Error(ack.err))
|
||||||
|
} else {
|
||||||
|
res()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await Promise.all(promises)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1227,9 +1239,7 @@ const disconnect = async pub => {
|
||||||
throw new Error('No handshake exists for this pub')
|
throw new Error('No handshake exists for this pub')
|
||||||
}
|
}
|
||||||
|
|
||||||
await cleanup(pub)
|
await Promise.all([cleanup(pub), generateHandshakeAddress()])
|
||||||
|
|
||||||
await generateHandshakeAddress()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue