Merge pull request #1358 from matrix-org/bwindels/fixwaitforeventrace-rc

Handle race between sending and await next event from other party
This commit is contained in:
J. Ryan Stinnett
2020-04-29 15:21:35 +01:00
committed by GitHub
2 changed files with 9 additions and 0 deletions
+5
View File
@@ -122,6 +122,11 @@ export class VerificationBase extends EventEmitter {
if (this._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;
return new Promise((resolve, reject) => {
this._resolveEvent = resolve;
@@ -877,4 +877,8 @@ export class VerificationRequest extends EventEmitter {
this._setPhase(newTransitions[newTransitions.length - 1].phase);
}
}
getEventFromOtherParty(type) {
return this._eventsByThem.get(type);
}
}