Lags during asynchronous skeletal mesh loading

I have the following code that asynchronously loads a skeletal mesh and then set it into a component:

// .h
TMap<USkeletalMeshComponent*, TSharedPtr<FStreamableHandle>> Handlers;

// .cpp
void ASeaDogsGameState::AsyncChangeSkeletalMesh(USkeletalMeshComponent* MeshComponent,
	TSoftObjectPtr<USkeletalMesh> Mesh)
	FStreamableManager& Manager = UAssetManager::GetStreamableManager();
	FStreamableDelegate Delegate;
		[this, MeshComponent]()
			USkeletalMesh* LoadedMesh = Cast<USkeletalMesh>(Handlers[MeshComponent]->GetLoadedAsset());
			if (IsValid(LoadedMesh))
	Handlers.Add(MeshComponent, Manager.RequestAsyncLoad(Mesh.ToSoftObjectPath(), Delegate));

However, at the MeshComponent->SetSkeletalMesh(LoadedMesh) step, lags occur as if the mesh was never loaded into memory. As a result, I have to keep all skeletal meshes in a character variable to dynamically switch meshes without lags.
Maybe someone has encountered this problem and knows how to solve it?