diff --git a/platform/persistence/elastic/src/ElasticPersistenceProvider.js b/platform/persistence/elastic/src/ElasticPersistenceProvider.js index 9c4ab35fc1..043f5cdad5 100644 --- a/platform/persistence/elastic/src/ElasticPersistenceProvider.js +++ b/platform/persistence/elastic/src/ElasticPersistenceProvider.js @@ -78,11 +78,11 @@ define( // Load the updated model, then reject the promise return get(key).then(function (model) { error.model = model; - throw error; + return $q.reject(error); }); } // Reject the promise - throw error; + return $q.reject(error); } // Check the response to a create/update/delete request; diff --git a/platform/persistence/queue/src/PersistenceQueueImpl.js b/platform/persistence/queue/src/PersistenceQueueImpl.js index 2f7edbd20e..faee439e21 100644 --- a/platform/persistence/queue/src/PersistenceQueueImpl.js +++ b/platform/persistence/queue/src/PersistenceQueueImpl.js @@ -34,16 +34,18 @@ define( return Object.keys(queue).length === lastObservedSize; } + // Clear the active promise for a queue flush + function clearFlushPromise(value) { + flushPromise = undefined; + activeDefer.resolve(value); + return value; + } + // Persist all queued objects function flush() { // Persist all queued objects - flushPromise = handler.persist(queue, objects); - - // When persisted, clear the active promise - flushPromise.then(function (value) { - flushPromise = undefined; - activeDefer.resolve(value); - }); + flushPromise = handler.persist(queue, objects) + .then(clearFlushPromise, clearFlushPromise); // Reset queue, etc. queue = {};