git » sdk » commit 0e0c9c0

Can't use an idb transaction past a promise/callback boundary

author Stephen Paul Weber
2023-11-30 04:28:42 UTC
committer Stephen Paul Weber
2023-12-11 15:59:52 UTC
parent 6f5cd197bc5fb82b4641c0077d165e14556b9a48

Can't use an idb transaction past a promise/callback boundary

xmpp/persistence/browser.js +3 -5

diff --git a/xmpp/persistence/browser.js b/xmpp/persistence/browser.js
index 75cde5a..755e334 100644
--- a/xmpp/persistence/browser.js
+++ b/xmpp/persistence/browser.js
@@ -450,12 +450,10 @@ exports.xmpp.persistence = {
 				cursor.onsuccess = (event) => {
 					if (event.target.result) {
 						const value = event.target.result.value;
-						this.getCaps(value.caps, (caps) => {
-							if (caps && caps.features.includes(feature)) result.push({ ...value, caps: caps });
-							event.target.result.continue();
-						});
+						result.push(new Promise((resolve) => this.getCaps(value.caps, (caps) => resolve({ ...value, caps: caps }))));
+						event.target.result.continue();
 					} else {
-						callback(result);
+						Promise.all(result).then((items) => items.filter((item) => item.caps && item.caps.features.includes(feature))).then(callback);
 					}
 				}
 				cursor.onerror = (event) => {