Move JobQueue to be a module so that we can use it in preload
This commit is contained in:
parent
949f597ca5
commit
960bd3fff2
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
})();
|
|
@ -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,
|
||||
}
|
|
@ -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 {
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
Loading…
Reference in New Issue