The one catch is that because responses from the blockchain can take variable amounts of time, it’s best to request and receive from blockchains using asynchronous methods.
"You may be used to writing websites that actually load in fractions of a second, and so rely on obsolete web2 technologies like synchronous fetches. But don't worry! With modern techniques like async / await your loading spinner will animate flawlessly while the blockchain spends 20 minutes burning down a forest in the background."