Move JobQueue to be a module so that we can use it in preload

This commit is contained in:
Beaudan 2019-04-15 11:04:02 +10:00
parent 949f597ca5
commit 960bd3fff2
5 changed files with 26 additions and 30 deletions

View File

@ -737,7 +737,6 @@
<script type='text/javascript' src='js/models/blockedNumbers.js'></script>
<script type='text/javascript' src='js/models/profile.js'></script>
<script type='text/javascript' src='js/expiring_messages.js'></script>
<script type='text/javascript' src='js/job_queue.js'></script>
<script type='text/javascript' src='js/chromium.js'></script>
<script type='text/javascript' src='js/registration.js'></script>

View File

@ -1,28 +0,0 @@
/* eslint-disable more/no-then */
// eslint-disable-next-line func-names
(function() {
'use strict';
class JobQueue {
constructor() {
this.pending = Promise.resolve();
}
add(job) {
const previous = this.pending || Promise.resolve();
this.pending = previous.then(job, job);
const current = this.pending;
current.then(() => {
if (this.pending === current) {
delete this.pending;
}
});
return current;
}
}
window.JobQueue = JobQueue;
})();

24
js/modules/job_queue.js Normal file
View File

@ -0,0 +1,24 @@
/* eslint-disable more/no-then */
class JobQueue {
constructor() {
this.pending = Promise.resolve();
}
add(job) {
const previous = this.pending || Promise.resolve();
this.pending = previous.then(job, job);
const current = this.pending;
current.then(() => {
if (this.pending === current) {
delete this.pending;
}
});
return current;
}
}
module.exports = {
JobQueue,
}

View File

@ -5,6 +5,7 @@ const electron = require('electron');
const semver = require('semver');
const { deferredToPromise } = require('./js/modules/deferred_to_promise');
const { JobQueue } = require('./js/modules/job_queue');
const { app } = electron.remote;
const { clipboard } = electron;
@ -31,6 +32,7 @@ window.getNodeVersion = () => config.node_version;
window.getHostName = () => config.hostname;
window.getServerTrustRoot = () => config.serverTrustRoot;
window.isBehindProxy = () => Boolean(config.proxyUrl);
window.JobQueue = JobQueue;
window.isBeforeVersion = (toCheck, baseVersion) => {
try {

View File

@ -373,7 +373,6 @@
<script type='text/javascript' src='../js/expiring_messages.js' data-cover></script>
<script type='text/javascript' src='../js/notifications.js' data-cover></script>
<script type='text/javascript' src='../js/focus_listener.js'></script>
<script type='text/javascript' src='../js/job_queue.js'></script>
<script type="text/javascript" src="../js/chromium.js" data-cover></script>