commit 48544729e751a4fad25bb8860a6c079de367d064
parent acb45593e723b7241ea4646cae4632339819a924
Author: Dan Stillman <dstillman@zotero.org>
Date: Tue, 26 Mar 2013 02:48:50 -0400
Replace some uses of Q.allResolved() with Q.all() in storage sync
Diffstat:
1 file changed, 19 insertions(+), 30 deletions(-)
diff --git a/chrome/content/zotero/xpcom/storage.js b/chrome/content/zotero/xpcom/storage.js
@@ -145,7 +145,7 @@ Zotero.Sync.Storage = new function () {
promises.push(Q.allResolved([mode, promise]));
}
}
- return Q.allResolved(promises)
+ return Q.all(promises)
// Get library last-sync times
.then(function (cacheCredentialsPromises) {
var promises = [];
@@ -153,13 +153,12 @@ Zotero.Sync.Storage = new function () {
// Mark WebDAV verification failure as user library error.
// We ignore credentials-caching errors for ZFS and let the
// later requests fail.
- cacheCredentialsPromises.forEach(function (p) {
- p = p.valueOf();
- let mode = p[0].valueOf();
+ cacheCredentialsPromises.forEach(function (promise) {
+ let mode = promise[0].valueOf();
if (mode == Zotero.Sync.Storage.WebDAV) {
- if (p[1].isRejected()) {
+ if (promise[1].isRejected()) {
promises.push(Q.allResolved(
- [0, p[1]]
+ [0, promise[1]]
));
// Skip further syncing of user library
delete libraryModes[0];
@@ -183,9 +182,7 @@ Zotero.Sync.Storage = new function () {
));
}
}
- // 'promises' is an array of promises for arrays containing promises
- // for a libraryID and the last sync time for that library
- return Q.allResolved(promises);
+ return Q.all(promises);
});
})
.then(function (promises) {
@@ -197,11 +194,10 @@ Zotero.Sync.Storage = new function () {
var libraryQueues = [];
// Get the libraries we have sync times for
- promises.forEach(function (p) {
- p = p.valueOf();
- let libraryID = p[0].valueOf();
- let lastSyncTime = p[1].valueOf();
- if (p[1].isFulfilled()) {
+ promises.forEach(function (promise) {
+ let libraryID = promise[0].valueOf();
+ let lastSyncTime = promise[1].valueOf();
+ if (promise[1].isFulfilled()) {
librarySyncTimes[libraryID] = lastSyncTime;
}
else {
@@ -282,7 +278,7 @@ Zotero.Sync.Storage = new function () {
}
// The promise is done when all libraries are done
- return Q.allResolved(libraryQueues);
+ return Q.all(libraryQueues);
})
.then(function (promises) {
Zotero.debug('Queue manager is finished');
@@ -291,13 +287,10 @@ Zotero.Sync.Storage = new function () {
var finalPromises = [];
promises.forEach(function (promise) {
- // Discard first allResolved() promise
- p = promise.valueOf();
-
- var libraryID = p[0].valueOf();
- var libraryQueues = p[1].valueOf();
+ var libraryID = promise[0].valueOf();
+ var libraryQueues = promise[1].valueOf();
- if (p[1].isFulfilled()) {
+ if (promise[1].isFulfilled()) {
libraryQueues.forEach(function (queuePromise) {
let result = queuePromise.valueOf();
if (queuePromise.isFulfilled()) {
@@ -350,21 +343,17 @@ Zotero.Sync.Storage = new function () {
Zotero.debug("No local changes made during file sync");
}
- return Q.allResolved(finalPromises)
+ return Q.all(finalPromises)
.then(function (promises) {
var results = {
changesMade: !!changedLibraries.length,
errors: []
};
- promises.forEach(function (p) {
- // If this is a promise, get an array
- if (Q.isPromise(p)) {
- p = p.valueOf();
- }
- var libraryID = p[0].valueOf();
- if (p[1].isRejected()) {
- var result = p[1].valueOf();
+ promises.forEach(function (promise) {
+ var libraryID = promise[0].valueOf();
+ if (promise[1].isRejected()) {
+ var result = promise[1].valueOf();
result = result.exception;
if (typeof result == 'string') {
result = new Error(result);