當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript promised-db.transaction函數代碼示例

本文整理匯總了TypeScript中promised-db.transaction函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript transaction函數的具體用法?TypeScript transaction怎麽用?TypeScript transaction使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了transaction函數的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: saveCatalog

	saveCatalog(catalog: Catalog, indEntries: IndexedEntry[], sti: SerializedTextIndex) {
		const header: CatalogHeader = {
			issue: catalog.issue,
			theme: catalog.theme,
			stats: catalog.stats,
			savedAt: new Date()
		};

		return this.db_.transaction(["headers", "entries", "textindexes"], "readwrite",
			(tr, { timeout }) => {
				console.info(`Storing issue ${header.issue} with ${indEntries.length} entries and textindex`);
				timeout(10000);

				const headers = tr.objectStore("headers");
				const entries = tr.objectStore("entries");
				const textindexes = tr.objectStore("textindexes");

				headers.put(header);

				const textIndex: PersistedTextIndex = {
					issue: catalog.issue,
					data: sti
				};
				textindexes.put(textIndex);

				for (const entry of indEntries) {
					entries.put(entry);
				}
			})
			.catch(error => {
				console.warn(`Error saving catalog ${catalog.issue}`, error);
				throw error;
			});
	}
開發者ID:zenmumbler,項目名稱:dtbb,代碼行數:34,代碼來源:catalogpersistence.ts

示例2: persistedIssues

	persistedIssues() {
		return this.db_.transaction("headers", "readonly",
			(tr, {getAll}) => {
				const issueIndex = tr.objectStore("headers").index("issue");
				return getAll<CatalogHeader>(issueIndex, undefined, "nextunique"); // while the key is "unique", a bug in Saf10 makes multiple indexes. Fixed in STP.
			})
			.catch(() => []);
	}
開發者ID:zenmumbler,項目名稱:dtbb,代碼行數:8,代碼來源:catalogpersistence.ts

示例3: purgeAllData

	purgeAllData() {
		return this.db_.transaction(["headers", "entries", "textindexes"], "readwrite",
			(tr, {}) => {
				const headers = tr.objectStore("headers");
				const entries = tr.objectStore("entries");
				const indexes = tr.objectStore("textindexes");

				headers.clear();
				entries.clear();
				indexes.clear();
			});
	}
開發者ID:zenmumbler,項目名稱:dtbb,代碼行數:12,代碼來源:catalogpersistence.ts

示例4: saveCatalogTextIndex

	saveCatalogTextIndex(issue: number, sti: SerializedTextIndex) {
		const data: PersistedTextIndex = {
			issue,
			data: sti
		};

		return this.db_.transaction("textindexes", "readwrite",
			(tr, {}) => {
				const textindexes = tr.objectStore("textindexes");
				textindexes.put(data);
			})
			.catch(error => {
				console.warn("Error saving textindex: ", error);
				throw error;
			});
	}
開發者ID:zenmumbler,項目名稱:dtbb,代碼行數:16,代碼來源:catalogpersistence.ts

示例5:

			.then(entryKeys => {
				return this.db_.transaction(["headers", "entries", "textindexes"], "readwrite",
					(tr, {}) => {
						const headers = tr.objectStore("headers");
						const entries = tr.objectStore("entries");
						const indexes = tr.objectStore("textindexes");

						if (entryKeys.length > 0) {
							const range = IDBKeyRange.bound(entryKeys[0], entryKeys[entryKeys.length - 1]);
							entries.delete(range);
						}

						headers.delete(issue);
						indexes.delete(issue);
					});
			});
開發者ID:zenmumbler,項目名稱:dtbb,代碼行數:16,代碼來源:catalogpersistence.ts

示例6: loadCatalog

	loadCatalog(issue: number) {
		return this.db_.transaction(["headers", "entries", "textindexes"], "readonly",
			(tr, {request, getAll, timeout}) => {
				timeout(5000);
				const headerP = request(tr.objectStore("headers").get(issue));
				const issueIndex = tr.objectStore("entries").index("issue");
				const entriesP = getAll<IndexedEntry>(issueIndex, issue);
				const ptiP = request(tr.objectStore("textindexes").get(issue));

				return Promise.all([headerP, entriesP, ptiP])
					.then((result) => {
						const pti = result[2] as PersistedTextIndex | undefined;
						return {
							header: result[0] as CatalogHeader,
							entries: result[1] as IndexedEntry[],
							sti: pti && pti.data
						};
					});
			})
			.catch(() => null);
	}
開發者ID:zenmumbler,項目名稱:dtbb,代碼行數:21,代碼來源:catalogpersistence.ts

示例7: destroyCatalog

	destroyCatalog(issue: number) {
		return this.db_.transaction(["entries"], "readonly",
			(tr, {getAllKeys}) => {
				const issueIndex = tr.objectStore("entries").index("issue");
				return getAllKeys<number>(issueIndex, issue);
			})
			.then(entryKeys => {
				return this.db_.transaction(["headers", "entries", "textindexes"], "readwrite",
					(tr, {}) => {
						const headers = tr.objectStore("headers");
						const entries = tr.objectStore("entries");
						const indexes = tr.objectStore("textindexes");

						if (entryKeys.length > 0) {
							const range = IDBKeyRange.bound(entryKeys[0], entryKeys[entryKeys.length - 1]);
							entries.delete(range);
						}

						headers.delete(issue);
						indexes.delete(issue);
					});
			});
	}
開發者ID:zenmumbler,項目名稱:dtbb,代碼行數:23,代碼來源:catalogpersistence.ts


注:本文中的promised-db.transaction函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。