Fetch all unread messages on reconnect
This commit is contained in:
@@ -276,4 +276,26 @@ export default class Client extends EventTarget {
|
||||
this.ws.close(1000);
|
||||
this.registered = false;
|
||||
}
|
||||
|
||||
/* Execute a command that expects a response. `done` is called with message
|
||||
* events until it returns a truthy value. */
|
||||
roundtrip(msg, done) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var handleMessage = (event) => {
|
||||
try {
|
||||
var result = done(event);
|
||||
if (result) {
|
||||
this.removeEventListener("message", handleMessage);
|
||||
resolve(result);
|
||||
}
|
||||
} catch (err) {
|
||||
this.removeEventListener("message", handleMessage);
|
||||
reject(err);
|
||||
}
|
||||
};
|
||||
|
||||
this.addEventListener("message", handleMessage);
|
||||
this.send(msg);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user