当前位置: 首页>>代码示例>>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;未经允许,请勿转载。