1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-07-18 12:31:12 +02:00

itemservice: fix promise returning in setItem.

This commit is contained in:
Kushagra Gour
2019-03-14 01:00:55 +05:30
parent 9a2fdfe552
commit 70c66456e4

View File

@@ -89,16 +89,14 @@ export const itemService = {
async setItem(id, item) { async setItem(id, item) {
const d = deferred(); const d = deferred();
var remotePromise; log(`Starting to save item ${id}`);
// Always persist in `code` key for `preserveLastOpenItem` setting. // Always persist in `code` key for `preserveLastOpenItem` setting.
// This key is used to retrieve content of last open item. // This key is used to retrieve content of last open item.
db.local.set({ code: item }, () => {}); db.local.set({ code: item }, () => {});
// NOT LOGGED IN // NOT LOGGED IN
// If `id` is `code`, this is a call on unloadbefore to save the last open thing, if (!window.user) {
// which needs to be persisted locally only.
if (!window.user || id === 'code') {
const obj = { const obj = {
[id]: item [id]: item
}; };
@@ -108,28 +106,25 @@ export const itemService = {
return d.promise; return d.promise;
} }
if (window.user) { var remoteDb = await window.db.getDb();
var remoteDb = await window.db.getDb(); item.createdBy = window.user.uid;
log(`Starting to save item ${id}`); remoteDb
item.createdBy = window.user.uid; .collection('items')
remotePromise = remoteDb .doc(id)
.collection('items') .set(item, {
.doc(id) merge: true
.set(item, { })
merge: true .then(arg => {
}) log('Document written', arg);
.then(arg => { d.resolve();
log('Document written', arg); })
d.resolve(); .catch(d.reject);
})
.catch(d.reject);
// logged in but offline, we resolve immediately so // logged in but offline, we resolve immediately so
// that you see the feedback msg immediately and not wait for // that you see the feedback msg immediately and not wait for
// later sync. // later sync.
if (!navigator.onLine) return Promise.resolve(); if (!navigator.onLine) return Promise.resolve();
return remotePromise; return d.promise;
}
}, },
/** /**