mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix concurrent loadItems in CatalogEntityStore (#4356)
* Fix concurrent loadItems in CatalogEntityStore Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com> * Add parameter to loadItems. Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com> * Remove unnecessary overloading. Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
This commit is contained in:
1 parent
0587301cc9
commit
14ab00d017
3 files changed
+16
-7
No files matched your search
@@ -97,12 +97,22 @@ export abstract class ItemStore<Item extends ItemObject> {
|
||||
}
|
||||
|
||||
protected async loadItems(...args: any[]): Promise<any>;
|
||||
/**
|
||||
* Load items to this.items
|
||||
* @param request Function to return the items to be loaded.
|
||||
* @param sortItems If true, items will be sorted.
|
||||
* @param concurrency If true, concurrent loadItems() calls will all be executed. If false, only the first.
|
||||
* @returns
|
||||
*/
|
||||
@action
|
||||
protected async loadItems(request: () => Promise<Item[] | any>, sortItems = true) {
|
||||
protected async loadItems(request: () => Promise<Item[] | any>, sortItems = true, concurrency = false) {
|
||||
if (this.isLoading) {
|
||||
await when(() => !this.isLoading);
|
||||
|
||||
return;
|
||||
// If concurrency for loading is disabled, return instead of loading
|
||||
if (!concurrency) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.isLoading = true;
|
||||
|
||||
|
||||
Reference in new issue
Block a user