本文整理匯總了TypeScript中dexie.Promise.all方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Promise.all方法的具體用法?TypeScript Promise.all怎麽用?TypeScript Promise.all使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類dexie.Promise
的用法示例。
在下文中一共展示了Promise.all方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: 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;
}
示例2: 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)));
}