
Both of these methods lead to repeating the same tired patterns many times over for checking if the operation was successful.



The way Roblox models asynchronous operations by default is by yielding (stopping) the thread and then resuming it when the future value is available.
