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> {
|
||||
await (await this.scope.caches.keys())
|
||||
// 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
|
||||
// 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.
|
||||
.filter(key => key.startsWith(`${this.adapter.cacheNamePrefix}:`)) // `
|
||||
.reduce(async (previous, key) => {
|
||||
await Promise.all([
|
||||
previous,
|
||||
this.scope.caches.delete(key),
|
||||
]);
|
||||
}, Promise.resolve());
|
||||
const cacheNames = await this.scope.caches.keys();
|
||||
const ownCacheNames =
|
||||
cacheNames
|
||||
// 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
|
||||
// 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.
|
||||
.filter(name => name.startsWith(`${this.adapter.cacheNamePrefix}:`)); // `
|
||||
|
||||
await Promise.all(ownCacheNames.map(name => this.scope.caches.delete(name)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue