Fetch all unread messages on reconnect
This commit is contained in:
parent
3b0253855e
commit
36df984b09
2 changed files with 178 additions and 30 deletions
|
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue