https://medium.com/@hi.boedi8/introduction-synchronous-asynchronous-function-on-javascript-cf051370102