What is the equivalent of Coroutines in UE4?

For those who is still looking.
Here is the most effective and lightweight solution how to achieve a similar result like it is in Unity’s coroutines (no timers, no delay nodes, no timelines, not inside tick with a bunch of checks). In Unreal the same functionality is easily achieved by using Latent Actions.

In order to make it happen and to use it in your blueprints, you will need to write a code in C++. The best example is to look at how Delay node is made. But instead of a counting down a variable, you should just call TriggerLink() in Update. Here is an example of how a final node looks like in my blueprint:

266223-2019-01-22-23-57-18-starfortressarpg-unreal-editor.png

To have Update/Finished nodes you need to use enum and expand it in meta. Result - is an object that controls your coroutine (so you can stop it when it is needed).

	UFUNCTION(BlueprintCallable, Category = "GameBPLibrary", meta = (Latent, LatentInfo = "LatentInfo", HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject", ExpandEnumAsExecs="Exec"))
		static void RunCoroutine(UObject* WorldContextObject, ECoroutineStateExec &Exec, struct FLatentActionInfo LatentInfo, UCoroutineActionResult *&Result, float &DeltaTime);