refactor(service-worker): avoid unnecessarily creating Promises in `Driver#deleteAllCaches()` (#40234)
This commit refactors `Driver#deleteAllCaches()` to use `Array#map()` instead of `Array#reduce()` for running async operations in parallel. This allows avoiding having to recursively wrap Promises with `Promise.all()`. PR Close #40234
This commit is contained in:
parent
b953a0c5a5
commit
2cf6fa2e9c
|
@ -722,18 +722,16 @@ export class Driver implements Debuggable, UpdateSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
private async deleteAllCaches(): Promise<void> {
|
private async deleteAllCaches(): Promise<void> {
|
||||||
await (await this.scope.caches.keys())
|
const cacheNames = await this.scope.caches.keys();
|
||||||
|
const ownCacheNames =
|
||||||
|
cacheNames
|
||||||
// The Chrome debugger is not able to render the syntax properly when the
|
// The Chrome debugger is not able to render the syntax properly when the
|
||||||
// code contains backticks. This is a known issue in Chrome and they have an
|
// code contains backticks. This is a known issue in Chrome and they have an
|
||||||
// open [issue](https://bugs.chromium.org/p/chromium/issues/detail?id=659515) for that.
|
// open [issue](https://bugs.chromium.org/p/chromium/issues/detail?id=659515) for that.
|
||||||
// As a work-around for the time being, we can use \\ ` at the end of the line.
|
// As a work-around for the time being, we can use \\ ` at the end of the line.
|
||||||
.filter(key => key.startsWith(`${this.adapter.cacheNamePrefix}:`)) // `
|
.filter(name => name.startsWith(`${this.adapter.cacheNamePrefix}:`)); // `
|
||||||
.reduce(async (previous, key) => {
|
|
||||||
await Promise.all([
|
await Promise.all(ownCacheNames.map(name => this.scope.caches.delete(name)));
|
||||||
previous,
|
|
||||||
this.scope.caches.delete(key),
|
|
||||||
]);
|
|
||||||
}, Promise.resolve());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue