diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2019-04-13 14:48:57 -0400 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2019-04-13 14:48:57 -0400 |
commit | 1190854396a0ff20441b285b2a3959d4c5f9650a (patch) | |
tree | 67b5af9f7706adbfe065e66493d67bce86e2e0cd /src | |
parent | c83093bb29c1f6d0e580385d9e7c5eb5f5846ac6 (diff) | |
parent | 75b82b3bd936f99e7df78a202371093404c5626a (diff) |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src')
-rw-r--r-- | src/server/database.ts | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/server/database.ts b/src/server/database.ts index 51eefeb8d..6cc9945b9 100644 --- a/src/server/database.ts +++ b/src/server/database.ts @@ -16,29 +16,27 @@ export class Database { if (this.db) { let collection = this.db.collection('documents'); const prom = this.currentWrites[id]; - const run = (promise: Promise<void>, resolve?: () => void) => { - collection.updateOne({ _id: id }, { $set: value }, { - upsert: true - }, (err, result) => { - if (err) { - console.log(err.message); - console.log(err.errmsg); - } - if (this.currentWrites[id] === promise) { - delete this.currentWrites[id]; - } - if (resolve) { - resolve(); - } - callback(); + const run = (): Promise<void> => { + let newProm = new Promise<void>(resolve => { + collection.updateOne({ _id: id }, { $set: value }, { upsert: true } + , (err, res) => { + if (err) { + console.log(err.message); + console.log(err.errmsg); + } + // if (res) { + // console.log(JSON.stringify(res.result)); + // } + if (this.currentWrites[id] === newProm) { + delete this.currentWrites[id]; + } + resolve(); + callback(); + }); }); + return newProm; }; - - let newProm: Promise<void> = new Promise<void>(resolve => run(newProm, resolve)); - this.currentWrites[id] = newProm; - if (prom) - prom.then(() => newProm); - else newProm; + this.currentWrites[id] = prom ? prom.then(run) : run(); } } |