Better approach to async code, allow async if-else