1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-02 17:02:31 +03:00

handle race between sending and await next event from other party

This commit is contained in:
Bruno Windels
2020-04-29 15:45:51 +02:00
parent 3bb1a6336b
commit 59412aba51
2 changed files with 9 additions and 0 deletions

View File

@@ -122,6 +122,11 @@ export class VerificationBase extends EventEmitter {
if (this._done) { if (this._done) {
return Promise.reject(new Error("Verification is already done")); return Promise.reject(new Error("Verification is already done"));
} }
const existingEvent = this.request.getEventFromOtherParty(type);
if (existingEvent) {
return Promise.resolve(existingEvent);
}
this._expectedEvent = type; this._expectedEvent = type;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this._resolveEvent = resolve; this._resolveEvent = resolve;

View File

@@ -877,4 +877,8 @@ export class VerificationRequest extends EventEmitter {
this._setPhase(newTransitions[newTransitions.length - 1].phase); this._setPhase(newTransitions[newTransitions.length - 1].phase);
} }
} }
getEventFromOtherParty(type) {
return this._eventsByThem.get(type);
}
} }