本文整理匯總了TypeScript中lru_map.LRUMap.get方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript LRUMap.get方法的具體用法?TypeScript LRUMap.get怎麽用?TypeScript LRUMap.get使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類lru_map.LRUMap
的用法示例。
在下文中一共展示了LRUMap.get方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1:
function setRejected<I, V>(cache: LRUMap<I, Result<V>>, input: I, error: any) {
const result = cache.get(input)
if (result) {
const newResult: RejectedResult = result as any
newResult.status = REJECTED
newResult.value = error
return newResult
} else {
const newResult: RejectedResult = {
status: REJECTED,
value: error
}
cache.set(input, newResult)
return newResult
}
}
示例2: resolve
}>(resolve => {
const sourceFiles: {
[key: string]: string | null;
} = {};
let count = 0;
// tslint:disable-next-line:prefer-for-of
for (let i = 0; i < filenames.length; i++) {
const filename = filenames[i];
const cache = FILE_CONTENT_CACHE.get(filename);
// We have a cache hit
if (cache !== undefined) {
// If it's not null (which means we found a file and have a content)
// we set the content and return it later.
if (cache !== null) {
sourceFiles[filename] = cache;
}
count++;
// In any case we want to skip here then since we have a content already or we couldn't
// read the file and don't want to try again.
if (count === filenames.length) {
resolve(sourceFiles);
}
continue;
}
readFile(filename, (err: Error | null, data: Buffer) => {
const content = err ? null : data.toString();
sourceFiles[filename] = content;
// We always want to set the cache, even to null which means there was an error reading the file.
// We do not want to try to read the file again.
FILE_CONTENT_CACHE.set(filename, content);
count++;
if (count === filenames.length) {
resolve(sourceFiles);
}
});
}
});
示例3: fetch
function accessResult<I, V>(
cache: LRUMap<I, Result<V>>,
fetch: (input: I) => Promise<V>,
input: I
): Result<V> {
let entry = cache.get(input)
if (entry === undefined) {
const thenable = fetch(input)
thenable.then(
value => {
if (newResult.status === PENDING) {
const resolvedResult: ResolvedResult<V> = newResult as any
resolvedResult.status = RESOLVED
resolvedResult.value = value
}
},
error => {
if (newResult.status === PENDING) {
const rejectedResult: RejectedResult = newResult as any
rejectedResult.status = REJECTED
rejectedResult.value = error
}
}
)
const newResult: PendingResult = {
status: PENDING,
value: thenable
}
cache.set(input, newResult)
return newResult
} else {
return entry
}
}