What Is Async, How Does It Work, And When Should I Use It?