本文整理汇总了TypeScript中dexie.Promise类的典型用法代码示例。如果您正苦于以下问题:TypeScript Promise类的具体用法?TypeScript Promise怎么用?TypeScript Promise使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Promise类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: storeHashtagsInTweets
storeHashtagsInTweets(jsons: Twitter.Status[]) {
const entries = [] as HashtagsScheme[];
const push = Array.prototype.push;
for (const j of jsons) {
if (!j.entities || !j.entities.hashtags) {
continue;
}
const hashtags = j.entities.hashtags
.map(h => ({
text: h.text,
timestamp: Date.now(),
}));
push.apply(entries, hashtags);
}
if (entries.length === 0) {
return Dexie.Promise.resolve<void>();
}
return this.table.bulkPut(entries)
.catch((e: Error) => {
log.error('Error on storing hashtags in tweets:', e, entries);
throw e;
});
}
示例2: relationValueMap
private async relationValueMap(joinQueryIds: Relation<number[]>): Promise<Relation<Map<number, string>>> {
let accounts = [] as DexiePromise<Entity[]>[];
let categories = [] as DexiePromise<Entity[]>[];
let subcategories = [] as DexiePromise<Entity[]>[];
let payeePayers = [] as DexiePromise<Entity[]>[];
let tags = [] as DexiePromise<Entity[]>[];
const tables = [
this.db.accounts,
this.db.categories,
this.db.subcategories,
this.db.payeePayers,
this.db.tags
];
await this.db.transaction('r', tables, () => {
joinQueryIds.accounts .forEach((id) => accounts .push(this.db.accounts .where('id').equals(id).toArray()));
joinQueryIds.categories .forEach((id) => categories .push(this.db.categories .where('id').equals(id).toArray()));
joinQueryIds.subcategories.forEach((id) => subcategories.push(this.db.subcategories.where('id').equals(id).toArray()));
joinQueryIds.payeePayers .forEach((id) => payeePayers .push(this.db.payeePayers .where('id').equals(id).toArray()));
joinQueryIds.tags .forEach((id) => tags .push(this.db.tags .where('id').equals(id).toArray()));
});
const allResolved = {
accounts : lodash.flattenDeep<Entity>(await Dexie.Promise.all(accounts)),
categories : lodash.flattenDeep<Entity>(await Dexie.Promise.all(categories)),
subcategories: lodash.flattenDeep<Entity>(await Dexie.Promise.all(subcategories)),
payeePayers : lodash.flattenDeep<Entity>(await Dexie.Promise.all(payeePayers)),
tags : lodash.flattenDeep<Entity>(await Dexie.Promise.all(tags)),
} as Relation<Entity[]>;
const _allMap = {
accounts: new Map(),
categories: new Map(),
subcategories: new Map(),
payeePayers: new Map(),
tags: new Map()
} as Relation<Map<number, string>>;
allResolved.accounts .map((item) => _allMap.accounts .set(item.id, item.name));
allResolved.categories .map((item) => _allMap.categories .set(item.id, item.name));
allResolved.subcategories.map((item) => _allMap.subcategories.set(item.id, item.name));
allResolved.payeePayers .map((item) => _allMap.payeePayers .set(item.id, item.name));
allResolved.tags .map((item) => _allMap.tags .set(item.id, item.name));
return _allMap;
}
示例3: getUrlsAndStatuses
// With async/await
async function getUrlsAndStatuses() {
let urls = await db.syncable.list();
let statuses = await Dexie.Promise.all(urls.map(url => db.syncable.getStatus(url)));
}