本文整理匯總了TypeScript中app/shared/angular-fire2.AngularFire2DatabaseAdaptor.list方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript AngularFire2DatabaseAdaptor.list方法的具體用法?TypeScript AngularFire2DatabaseAdaptor.list怎麽用?TypeScript AngularFire2DatabaseAdaptor.list使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類app/shared/angular-fire2.AngularFire2DatabaseAdaptor
的用法示例。
在下文中一共展示了AngularFire2DatabaseAdaptor.list方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: constructor
public constructor(
private readonly db: AngularFire2DatabaseAdaptor,
) {
this.profitabilityStats = db.list(validPathForList(['v2', 'pool', 'latest']))
.publishReplay(1)
.refCount();
this.profitabilityTimeseriesCache = {};
}
示例2: switch
private watchProfitability<
K extends keyof PoolProfitability,
Z extends keyof PoolProfitability[K],
T extends PoolProfitability[K][Z]
>(
p: PoolCurrentWithKey,
granularityKey: K,
convertFn: (multiplier: number) => (data: T) => TimeseriesDataPoint,
limit = 120,
rigProfile: Observable<RigProfile>,
): Observable<PoolAlgoData> {
let limitMinutes = limit;
switch (granularityKey) {
case 'per-day':
limitMinutes = limit * 24 * 60;
break;
case 'per-hour':
limitMinutes = limit * 60;
break;
default:
}
const listKey: ValidPathForList<T> = isCoinPoolCurrent(p) ?
validPathForList([
'v2', 'pool', 'coin', p.pool, p.coin, p.algo, 'profitability', granularityKey,
]) :
validPathForList([
'v2', 'pool', 'algo', p.pool, p.algo, 'profitability', granularityKey,
]);
const listResult = this.db.list(
listKey,
{ limitToLast: limit, orderByPriority: true },
);
return listResult
.combineLatest(
rigProfile.map(profile => convertFn(this.multiplier(p.pool, p.algo, profile))),
)
.map(
([data, convertFnInstance]): PoolAlgoData => {
const timeLimit = (Date.now() - limitMinutes * 60 * 1000);
const mostRecent = data.reduce(
(newest, next) => {
if (newest.timestamp < next.timestamp) {
return next;
}
return newest;
},
data[0],
);
return {
algo: p.algo,
key: p.key,
mostRecent: mostRecent != null ? convertFnInstance(mostRecent) : undefined,
name: `${p.pool} - ${p.algo}`,
pool: p.pool,
series: data
.map(convertFnInstance)
.filter(point => {
if (typeof point.name === 'string') {
return true;
}
return point.name.getTime() > timeLimit;
}),
};
},
);
}